diff --git a/.vscode/settings.json b/.vscode/settings.json index 7b9bb69eb1..cc58a667ba 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,8 @@ { "rust-analyzer.runnables.extraTestBinaryArgs": [ "--nocapture" - ] -} \ No newline at end of file + ], + "files.associations": { + "*.pli": "st" + } +} diff --git a/Cargo.lock b/Cargo.lock index 35426fc3aa..31ad4a747f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -518,6 +518,28 @@ dependencies = [ "windows-link", ] +[[package]] +name = "chrono-tz" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb" +dependencies = [ + "chrono", + "chrono-tz-build", + "phf", +] + +[[package]] +name = "chrono-tz-build" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1" +dependencies = [ + "parse-zoneinfo", + "phf", + "phf_codegen", +] + [[package]] name = "clap" version = "3.2.25" @@ -868,6 +890,12 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "deunicode" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abd57806937c9cc163efc8ea3910e00a62e2aeb0b8119f1793a978088f8f6b04" + [[package]] name = "diff" version = "0.1.13" @@ -1306,6 +1334,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877e94aff08e743b651baaea359664321055749b398adff8740a7399af7796e7" dependencies = [ "cfg-if", + "serde", ] [[package]] @@ -1368,6 +1397,17 @@ dependencies = [ "regex-syntax 0.8.6", ] +[[package]] +name = "globwalk" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" +dependencies = [ + "bitflags 2.9.4", + "ignore", + "walkdir", +] + [[package]] name = "gloo-timers" version = "0.3.0" @@ -1607,6 +1647,15 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "humansize" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" +dependencies = [ + "libm", +] + [[package]] name = "humantime" version = "2.3.0" @@ -1860,6 +1909,8 @@ checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "equivalent", "hashbrown 0.16.0", + "serde", + "serde_core", ] [[package]] @@ -2696,6 +2747,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "parse-zoneinfo" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24" +dependencies = [ + "regex", +] + [[package]] name = "paste" version = "1.0.15" @@ -2879,6 +2939,7 @@ dependencies = [ "plc_util", "rustc-hash", "serde", + "serde_json", ] [[package]] @@ -2920,6 +2981,7 @@ dependencies = [ "log", "plc_ast", "plc_diagnostics", + "plc_header_generator", "plc_index", "plc_lowering", "plc_project", @@ -2935,6 +2997,23 @@ dependencies = [ "toml", ] +[[package]] +name = "plc_header_generator" +version = "0.1.0" +dependencies = [ + "clap 3.2.25", + "insta", + "log", + "plc_ast", + "plc_diagnostics", + "plc_source", + "regex", + "rusty", + "serde", + "serde_json", + "tera", +] + [[package]] name = "plc_index" version = "0.1.0" @@ -2945,6 +3024,8 @@ dependencies = [ "plc_diagnostics", "plc_source", "rustc-hash", + "serde", + "serde_json", ] [[package]] @@ -2984,6 +3065,8 @@ dependencies = [ "encoding_rs", "encoding_rs_io", "insta", + "serde", + "serde_json", ] [[package]] @@ -3731,6 +3814,16 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +[[package]] +name = "slug" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" +dependencies = [ + "deunicode", + "wasm-bindgen", +] + [[package]] name = "smallvec" version = "1.15.1" @@ -4178,6 +4271,28 @@ dependencies = [ "utf-8", ] +[[package]] +name = "tera" +version = "1.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab9d851b45e865f178319da0abdbfe6acbc4328759ff18dafc3a41c16b4cd2ee" +dependencies = [ + "chrono", + "chrono-tz", + "globwalk", + "humansize", + "lazy_static", + "percent-encoding", + "pest", + "pest_derive", + "rand 0.8.5", + "regex", + "serde", + "serde_json", + "slug", + "unic-segment", +] + [[package]] name = "termcolor" version = "1.4.1" @@ -4513,6 +4628,56 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-segment" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23" +dependencies = [ + "unic-ucd-segment", +] + +[[package]] +name = "unic-ucd-segment" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + [[package]] name = "unicase" version = "2.8.1" diff --git a/Cargo.toml b/Cargo.toml index 07249bc3e8..688c9b4a80 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,8 +25,8 @@ plc_index = { path = "./compiler/plc_index" } section_mangler = { path = "./compiler/section_mangler" } logos = "0.12.0" clap = { version = "3.0", features = ["derive"] } -indexmap = "2.0" -generational-arena = "0.2.8" +indexmap = { version = "2.0", features = ["serde"] } +generational-arena = { version = "0.2.8", features = ["serde"] } regex = "1" shell-words = "1.1.0" plc_derive = { path = "./compiler/plc_derive" } @@ -79,6 +79,7 @@ members = [ "compiler/plc_index", "compiler/section_mangler", "compiler/plc_lowering", + "compiler/plc_header_generator", "tests/test_utils", ] default-members = [".", "compiler/plc_driver", "compiler/plc_xml"] diff --git a/compiler/plc_ast/Cargo.toml b/compiler/plc_ast/Cargo.toml index a23fdd27bf..20483e1ae7 100644 --- a/compiler/plc_ast/Cargo.toml +++ b/compiler/plc_ast/Cargo.toml @@ -9,6 +9,8 @@ edition = "2021" plc_util = { path = "../plc_util" } plc_source = { path = "../plc_source" } chrono = { version = "0.4", default-features = false } -serde = { version = "1.0", features = ["derive"] } +# Enabled the RC feature (for Arc) see: https://serde.rs/feature-flags.html#-features-rc +serde = { version = "1.0", features = ["derive", "rc"] } +serde_json.workspace = true derive_more = { version = "0.99.0", features = ["try_into"] } rustc-hash.workspace = true diff --git a/compiler/plc_ast/src/ast.rs b/compiler/plc_ast/src/ast.rs index f8038b39f2..d46e119ab6 100644 --- a/compiler/plc_ast/src/ast.rs +++ b/compiler/plc_ast/src/ast.rs @@ -23,13 +23,14 @@ use plc_source::source_location::*; pub type AstId = usize; -#[derive(Clone, Debug, PartialEq, Eq, Hash)] +#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub struct GenericBinding { pub name: String, pub nature: TypeNature, } -#[derive(PartialEq)] +#[derive(PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct Pou { pub id: AstId, pub name: String, @@ -53,7 +54,8 @@ pub struct Pou { pub properties: Vec, } -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct Interface { pub id: AstId, pub ident: Identifier, @@ -63,14 +65,16 @@ pub struct Interface { pub properties: Vec, } -#[derive(Debug, PartialEq, Eq, Clone, Hash)] +#[derive(Debug, PartialEq, Eq, Clone, Hash, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct Identifier { pub name: String, pub location: SourceLocation, } /// The property container as a whole, which contains [`PropertyImplementation`]s -#[derive(Debug, PartialEq, Clone)] +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct PropertyBlock { pub ident: Identifier, pub datatype: DataTypeDeclaration, @@ -87,7 +91,8 @@ impl Hash for PropertyBlock { } } -#[derive(Debug, PartialEq, Clone)] +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct PropertyImplementation { pub kind: PropertyKind, pub location: SourceLocation, @@ -96,7 +101,7 @@ pub struct PropertyImplementation { pub end_location: SourceLocation, } -#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)] +#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq, Serialize, Deserialize)] pub enum PropertyKind { Get, Set, @@ -111,7 +116,7 @@ impl std::fmt::Display for PropertyKind { } } -#[derive(Debug, PartialEq, Eq)] +#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)] pub enum PolymorphismMode { None, Abstract, @@ -138,7 +143,7 @@ pub enum DirectAccessType { Template, } -#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] +#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash, Serialize, Deserialize)] pub enum TypeNature { Any, Derived, @@ -298,7 +303,8 @@ impl Pou { } } -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct Implementation { pub name: String, pub type_name: String, @@ -313,14 +319,14 @@ pub struct Implementation { pub access: Option, } -#[derive(Debug, Copy, PartialEq, Eq, Clone, Hash)] +#[derive(Debug, Copy, PartialEq, Eq, Clone, Hash, Serialize, Deserialize)] pub enum LinkageType { Internal, External, BuiltIn, } -#[derive(Debug, PartialEq, Eq, Clone, Copy)] +#[derive(Debug, PartialEq, Eq, Clone, Copy, Serialize, Deserialize)] pub enum AccessModifier { Private, Public, @@ -328,7 +334,7 @@ pub enum AccessModifier { Internal, } -#[derive(Debug, PartialEq, Eq, Copy, Clone, Hash)] +#[derive(Debug, PartialEq, Eq, Copy, Clone, Hash, Serialize, Deserialize)] pub enum DeclarationKind { Abstract, Concrete, @@ -344,7 +350,7 @@ impl DeclarationKind { } } -#[derive(Debug, PartialEq, Eq, Clone, Hash)] +#[derive(Debug, PartialEq, Eq, Clone, Hash, Serialize, Deserialize)] pub enum PouType { Program, Function, @@ -406,7 +412,8 @@ impl PouType { } } -#[derive(Debug, PartialEq, Clone)] +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct ConfigVariable { pub reference: AstNode, pub data_type: DataTypeDeclaration, @@ -425,7 +432,8 @@ impl ConfigVariable { } } -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct CompilationUnit { pub global_vars: Vec, pub var_config: Vec, @@ -470,7 +478,7 @@ impl CompilationUnit { } } -#[derive(Debug, Copy, PartialEq, Eq, Clone)] +#[derive(Debug, Copy, PartialEq, Eq, Clone, Serialize, Deserialize)] pub enum VariableBlockType { Local, Temp, @@ -495,13 +503,14 @@ impl Display for VariableBlockType { } } -#[derive(Debug, Copy, PartialEq, Eq, Clone)] +#[derive(Debug, Copy, PartialEq, Eq, Clone, Serialize, Deserialize)] pub enum ArgumentProperty { ByVal, ByRef, } -#[derive(PartialEq, Clone)] +#[derive(PartialEq, Clone, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct VariableBlock { pub access: AccessModifier, pub constant: bool, @@ -551,7 +560,8 @@ impl Debug for VariableBlock { } } -#[derive(Clone)] +#[derive(Clone, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct Variable { pub name: String, pub data_type_declaration: DataTypeDeclaration, @@ -594,7 +604,8 @@ impl Variable { } } -#[derive(Clone, PartialEq)] +#[derive(Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub enum DataTypeDeclaration { Reference { referenced_type: String, location: SourceLocation }, Definition { data_type: Box, location: SourceLocation, scope: Option }, @@ -672,7 +683,8 @@ impl DataTypeDeclaration { } } -#[derive(PartialEq)] +#[derive(PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct UserTypeDeclaration { pub data_type: DataType, pub initializer: Option, @@ -691,7 +703,8 @@ impl Debug for UserTypeDeclaration { } } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub enum DataType { StructType { name: Option, //maybe None for inline structs @@ -742,7 +755,7 @@ pub enum DataType { }, } -#[derive(Debug, Clone, Copy, PartialEq)] +#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)] pub enum AutoDerefType { /// A plain pointer variable with the auto-deref trait, e.g. VAR_IN_OUT or VAR_INPUT{ref} variables Default, @@ -820,7 +833,8 @@ fn replace_reference( Some(*old_data_type) } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub enum ReferenceAccess { /// `.foo` Global(Box), @@ -844,7 +858,8 @@ pub enum ReferenceAccess { // XXX: this should probably be an enum or dyn trait at some point, but for now we only have a singular use-case (preserving lowered AST for validation) // Another use-case might be markers to exclude internals from validation - this currently happens based on `SourceLocation` with `FileMarker`s, // this might be a better alternative -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct MetaData(Box); impl From for MetaData { @@ -867,7 +882,8 @@ impl MetaData { } } -#[derive(Clone, PartialEq)] +#[derive(Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct AstNode { pub stmt: AstStatement, pub id: AstId, @@ -881,7 +897,8 @@ impl Default for AstNode { } } -#[derive(Debug, Clone, PartialEq, TryInto)] +#[derive(Debug, Clone, PartialEq, TryInto, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] #[try_into(ref, ref_mut, owned)] pub enum AstStatement { EmptyStatement(EmptyStatement), @@ -1486,7 +1503,7 @@ impl AstNode { } } -#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)] pub enum Operator { Plus, Minus, @@ -2046,10 +2063,10 @@ impl AstFactory { AstFactory::create_binary_expression(value, Operator::Plus, one, id) } } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct EmptyStatement {} -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct DefaultValue {} #[derive(Debug, Clone, PartialEq)] @@ -2058,63 +2075,73 @@ pub struct CastStatement { pub type_name: String, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct MultipliedStatement { pub multiplier: u32, pub element: Box, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct ReferenceExpr { pub access: ReferenceAccess, pub base: Option>, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct DirectAccess { pub access: DirectAccessType, pub index: Box, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct HardwareAccess { pub direction: HardwareAccessType, pub access: DirectAccessType, pub address: Vec, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct BinaryExpression { pub operator: Operator, pub left: Box, pub right: Box, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct UnaryExpression { pub operator: Operator, pub value: Box, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct RangeStatement { pub start: Box, pub end: Box, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct Assignment { pub left: Box, pub right: Box, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct CallStatement { pub operator: Box, pub parameters: Option>, } /// Represents a conditional jump from current location to a specified label -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct JumpStatement { /// The condition based on which the current statement will perform a jump pub condition: Box, @@ -2123,12 +2150,12 @@ pub struct JumpStatement { } /// Represents a location in code that could be jumbed to -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct LabelStatement { pub name: String, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct Allocation { pub name: String, pub reference_type: String, diff --git a/compiler/plc_ast/src/control_statements.rs b/compiler/plc_ast/src/control_statements.rs index c3885c5103..72d73aec24 100644 --- a/compiler/plc_ast/src/control_statements.rs +++ b/compiler/plc_ast/src/control_statements.rs @@ -1,17 +1,20 @@ +use serde::{Deserialize, Serialize}; use std::fmt::Debug; use plc_source::source_location::SourceLocation; use crate::ast::AstNode; -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct IfStatement { pub blocks: Vec, pub else_block: Vec, pub end_location: SourceLocation, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct ForLoopStatement { pub counter: Box, pub start: Box, @@ -21,7 +24,8 @@ pub struct ForLoopStatement { pub end_location: SourceLocation, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] /// used for While and Repeat loops pub struct LoopStatement { pub condition: Box, @@ -29,7 +33,8 @@ pub struct LoopStatement { pub end_location: SourceLocation, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct CaseStatement { pub selector: Box, pub case_blocks: Vec, @@ -37,7 +42,8 @@ pub struct CaseStatement { pub end_location: SourceLocation, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub enum AstControlStatement { If(IfStatement), ForLoop(ForLoopStatement), @@ -46,13 +52,15 @@ pub enum AstControlStatement { Case(CaseStatement), } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct ConditionalBlock { pub condition: Box, pub body: Vec, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct ReturnStatement { /// Indicates that the given condition must evaluate to true in order for the return to take place. /// Only used in CFC where the condition may be [`Some`] and [`None`] otherwise. diff --git a/compiler/plc_ast/src/literals.rs b/compiler/plc_ast/src/literals.rs index 084a900f3d..dee7ed6286 100644 --- a/compiler/plc_ast/src/literals.rs +++ b/compiler/plc_ast/src/literals.rs @@ -1,6 +1,7 @@ use std::fmt::{Debug, Formatter}; use chrono::NaiveDate; +use serde::{Deserialize, Serialize}; use crate::ast::AstNode; use derive_more::TryInto; @@ -15,7 +16,8 @@ macro_rules! impl_getters { } } -#[derive(Clone, PartialEq, TryInto)] +#[derive(Clone, PartialEq, TryInto, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] #[try_into(ref)] pub enum AstLiteral { /// a null literal used to initialize pointers @@ -40,14 +42,14 @@ pub enum AstLiteral { Array(Array), } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct Date { year: i32, month: u32, day: u32, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct DateAndTime { year: i32, month: u32, @@ -58,7 +60,7 @@ pub struct DateAndTime { nano: u32, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct TimeOfDay { hour: u32, min: u32, @@ -66,7 +68,7 @@ pub struct TimeOfDay { nano: u32, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct Time { pub day: f64, pub hour: f64, @@ -78,13 +80,14 @@ pub struct Time { pub negative: bool, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct StringValue { pub value: String, pub is_wide: bool, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct Array { pub elements: Option>, // expression-list } diff --git a/compiler/plc_ast/src/provider.rs b/compiler/plc_ast/src/provider.rs index 773661c7cf..1b87d62223 100644 --- a/compiler/plc_ast/src/provider.rs +++ b/compiler/plc_ast/src/provider.rs @@ -3,9 +3,11 @@ use std::sync::{ Arc, }; +use serde::{Deserialize, Serialize}; + use crate::ast::AstId; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Deserialize, Serialize)] pub struct IdProvider { current_id: Arc, } diff --git a/compiler/plc_driver/Cargo.toml b/compiler/plc_driver/Cargo.toml index 1d6323e7c3..b32360eec6 100644 --- a/compiler/plc_driver/Cargo.toml +++ b/compiler/plc_driver/Cargo.toml @@ -15,6 +15,7 @@ cfc = { path = "../plc_xml/", package = "plc_xml" } plc_diagnostics = { path = "../plc_diagnostics/" } plc_index = { path = "../plc_index" } plc_lowering = { path = "../plc_lowering" } +plc_header_generator = { path = "../plc_header_generator" } serde = { version = "1.0", features = ["derive"] } serde_json = "1" diff --git a/compiler/plc_driver/src/cli.rs b/compiler/plc_driver/src/cli.rs index 8a863cc642..8f42ec14ee 100644 --- a/compiler/plc_driver/src/cli.rs +++ b/compiler/plc_driver/src/cli.rs @@ -3,6 +3,7 @@ use anyhow::{bail, Result}; use clap::{ArgGroup, Parser, Subcommand}; use encoding_rs::Encoding; use plc_diagnostics::diagnostics::{diagnostics_registry::DiagnosticsConfiguration, Diagnostic}; +use plc_header_generator::GenerateLanguage; use std::{env, ffi::OsStr, num::ParseIntError, path::PathBuf}; use plc::output::FormatOption; @@ -250,6 +251,17 @@ pub struct CompileParameters { )] pub online_change: bool, + #[clap(name = "generate-headers", long, help = "Generate headers only, do not compile.", global = true)] + pub generate_headers_only: bool, + + #[clap( + name = "header-output", + long, + help = "The output folder where generated headers will be placed.", + global = true + )] + pub header_output: Option, + #[clap(subcommand)] pub commands: Option, } @@ -311,6 +323,20 @@ pub enum SubCommands { #[clap(help = "Error code to explain, for example `E001`")] error: String, }, + + /// Generates code for a given project + /// + /// Sub-command(s): + /// Header : Generates the Header files + Generate { + #[clap( + parse(try_from_str = validate_config) + )] + build_config: Option, + + #[clap(subcommand)] + option: GenerateOption, + }, } #[derive(Copy, Clone, PartialEq, Eq, Debug, Subcommand)] @@ -321,11 +347,40 @@ pub enum ConfigOption { Diagnostics, } +#[derive(Debug, Subcommand)] +pub enum GenerateOption { + Headers { + #[clap( + name = "include-stubs", + long, + help = "Whether or not to include generated code stubs for the library." + )] + include_stubs: bool, + + #[clap( + name = "header-language", + long, + arg_enum, + help = "The language used to generate the header file. Currently supported language(s) are: C", + default_value = "c" + )] + language: GenerateLanguage, + + #[clap( + name = "header-prefix", + long, + help = "The prefix for the generated header file(s). Will default to the project name if not supplied." + )] + prefix: Option, + }, +} + impl SubCommands { pub fn get_build_configuration(&self) -> Option<&str> { let (SubCommands::Build { build_config, .. } | SubCommands::Check { build_config } - | SubCommands::Config { build_config, .. }) = self + | SubCommands::Config { build_config, .. } + | SubCommands::Generate { build_config, .. }) = self else { return None; }; @@ -414,6 +469,15 @@ impl CompileParameters { self.check_only || matches!(self.commands, Some(SubCommands::Check { .. })) } + /// If set, header files will be generated + pub fn is_header_generator(&self) -> bool { + self.generate_headers_only + || matches!( + self.commands, + Some(SubCommands::Generate { option: GenerateOption::Headers { .. }, .. }) + ) + } + /// return the selected output format, or the default if none. #[cfg(test)] pub fn output_format_or_default(&self) -> FormatOption { @@ -485,6 +549,7 @@ impl CompileParameters { let current_dir = env::current_dir()?; build_config.is_some() || super::get_config(¤t_dir).exists() } + Some(SubCommands::Generate { build_config, .. }) => build_config.is_some(), }; Ok(res) } @@ -506,7 +571,7 @@ impl CompileParameters { #[cfg(test)] mod cli_tests { - use crate::cli::ConfigOption; + use crate::cli::{ConfigOption, GenerateLanguage, GenerateOption}; use super::{CompileParameters, SubCommands}; use clap::ErrorKind; @@ -884,6 +949,53 @@ mod cli_tests { } } + #[test] + fn generate_subcommand() { + let parameters = + CompileParameters::parse(vec_of_strings!("generate", "src/ProjectPlc.json", "headers")).unwrap(); + if let Some(commands) = parameters.commands { + match commands { + SubCommands::Generate { build_config, option, .. } => { + assert_eq!(build_config, Some("src/ProjectPlc.json".to_string())); + match option { + GenerateOption::Headers { include_stubs, language, .. } => { + assert_eq!(include_stubs, false); + assert_eq!(language, GenerateLanguage::C); + } + } + } + _ => panic!("Unexpected command"), + }; + } + + let parameters = CompileParameters::parse(vec_of_strings!( + "generate", + "src/ProjectPlc.json", + "headers", + "--include-stubs", + "--header-language", + "rust", + "--header-prefix", + "myLib" + )) + .unwrap(); + if let Some(commands) = parameters.commands { + match commands { + SubCommands::Generate { build_config, option, .. } => { + assert_eq!(build_config, Some("src/ProjectPlc.json".to_string())); + match option { + GenerateOption::Headers { include_stubs, language, prefix } => { + assert_eq!(include_stubs, true); + assert_eq!(language, GenerateLanguage::Rust); + assert_eq!(prefix, Some("myLib".to_string())); + } + } + } + _ => panic!("Unexpected command"), + }; + } + } + #[test] fn include_files_added() { let parameters = CompileParameters::parse(vec_of_strings!( diff --git a/compiler/plc_driver/src/pipelines.rs b/compiler/plc_driver/src/pipelines.rs index 33e933d23d..923c815d95 100644 --- a/compiler/plc_driver/src/pipelines.rs +++ b/compiler/plc_driver/src/pipelines.rs @@ -9,7 +9,7 @@ use std::{ }; use crate::{ - cli::{self, CompileParameters, ConfigOption, SubCommands}, + cli::{self, CompileParameters, ConfigOption, GenerateOption, SubCommands}, get_project, CompileOptions, LinkOptions, LinkerScript, }; use ast::{ @@ -41,6 +41,10 @@ use plc_diagnostics::{ diagnostician::Diagnostician, diagnostics::{Diagnostic, Severity}, }; +use plc_header_generator::{ + header_generator::{get_generated_header, GeneratedHeader}, + GenerateHeaderOptions, +}; use plc_index::GlobalContext; use plc_lowering::inheritance::InheritanceLowerer; use project::{ @@ -48,6 +52,7 @@ use project::{ project::{LibraryInformation, Project}, }; use rayon::prelude::*; +use serde::{Deserialize, Serialize}; use source_code::{source_location::SourceLocation, SourceContainer}; use serde_json; @@ -74,6 +79,7 @@ pub trait Pipeline { fn index(&mut self, project: ParsedProject) -> Result; fn annotate(&mut self, project: IndexedProject) -> Result; fn generate(&mut self, context: &CodegenContext, project: AnnotatedProject) -> Result<(), Diagnostic>; + fn generate_headers(&mut self, project: AnnotatedProject) -> Result<(), Diagnostic>; } impl TryFrom for BuildPipeline { @@ -222,6 +228,29 @@ impl BuildPipeline { }) } + pub fn get_generate_header_options(&self) -> Option { + let header_output_path = + self.compile_parameters.as_ref().map(|params| params.header_output.clone().unwrap_or_default()); + + let output_path = if let Some(output_path) = header_output_path { + PathBuf::from(output_path) + } else { + PathBuf::from(String::new()) + }; + + self.compile_parameters.as_ref().map(|params| match params.commands.as_ref() { + Some(SubCommands::Generate { option, .. }) => match option { + GenerateOption::Headers { include_stubs, language, prefix, .. } => GenerateHeaderOptions { + include_stubs: *include_stubs, + language: *language, + output_path, + prefix: prefix.clone().unwrap_or(String::new()), + }, + }, + _ => GenerateHeaderOptions { output_path, ..Default::default() }, + }) + } + fn print_config_options(&self, option: ConfigOption) -> Result<(), Diagnostic> { match option { cli::ConfigOption::Schema => { @@ -333,11 +362,17 @@ impl Pipeline for BuildPipeline { annotated_project.generate_hardware_information(format, location)?; } - // 5. Codegen + // Skip code-gen if it is check if self.compile_parameters.as_ref().is_some_and(CompileParameters::is_check) { return Ok(()); } + // Generate Header files + if self.compile_parameters.as_ref().is_some_and(CompileParameters::is_header_generator) { + return self.generate_headers(annotated_project); + } + + // 5. Codegen self.generate(&CodegenContext::create(), annotated_project) } @@ -429,6 +464,33 @@ impl Pipeline for BuildPipeline { .unwrap_or(Ok(()))?; Ok(()) } + + fn generate_headers(&mut self, project: AnnotatedProject) -> Result<(), Diagnostic> { + let Some(generate_header_options) = self.get_generate_header_options() else { + log::debug!("No generate header options provided!"); + return Ok(()); + }; + + let mut generated_headers: Vec> = Vec::new(); + + for unit in project.units { + generated_headers.push(get_generated_header(&generate_header_options, &unit.unit)?); + } + + for generated_header in generated_headers { + if !generated_header.is_empty() { + // Create the directories to the output path (if it is necessary to do so) + if !generated_header.get_directory().is_empty() { + fs::create_dir_all(generated_header.get_directory())?; + } + + // Write the header file + fs::write(generated_header.get_path(), generated_header.get_contents())?; + } + } + + Ok(()) + } } pub fn read_got_layout(location: &str, format: ConfigFormat) -> Result, Diagnostic> { @@ -467,6 +529,8 @@ fn write_got_layout( ///Represents a parsed project ///For this struct to be built, the project would have been parsed correctly and an AST would have ///been generated +#[derive(Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct ParsedProject { units: Vec, } @@ -569,6 +633,8 @@ impl ParsedProject { ///A project that has also been indexed /// Units inside an index project are ready be resolved and annotated +#[derive(Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct IndexedProject { project: ParsedProject, index: Index, @@ -621,7 +687,8 @@ impl IndexedProject { } } -#[derive(Debug)] +#[derive(Debug, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct AnnotatedUnit { unit: CompilationUnit, dependencies: FxIndexSet, @@ -649,6 +716,8 @@ impl From for CompilationUnit { } /// A project that has been annotated with information about different types and used units +#[derive(Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct AnnotatedProject { pub units: Vec, pub index: Index, diff --git a/compiler/plc_driver/src/tests.rs b/compiler/plc_driver/src/tests.rs index a213a1a4f5..8bdb66b918 100644 --- a/compiler/plc_driver/src/tests.rs +++ b/compiler/plc_driver/src/tests.rs @@ -4,13 +4,39 @@ use plc::DebugLevel; use plc_diagnostics::{diagnostician::Diagnostician, diagnostics::Diagnostic}; use plc_index::GlobalContext; use project::project::Project; +use serde::{Deserialize, Serialize}; use source_code::SourceContainer; -use crate::{pipelines, CompileOptions}; +use crate::{ + pipelines::{self, AnnotatedProject, BuildPipeline, IndexedProject, ParsedProject, Pipeline}, + CompileOptions, +}; mod external_files; +mod header_generator; mod multi_files; +#[derive(Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] +pub struct ParsedProjectWrapper { + pub parsed_project: ParsedProject, + pub context: GlobalContext, +} + +#[derive(Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] +pub struct IndexedProjectWrapper { + pub indexed_project: IndexedProject, + pub context: GlobalContext, +} + +#[derive(Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] +pub struct AnnotatedProjectWrapper { + pub annotated_project: AnnotatedProject, + pub context: GlobalContext, +} + pub fn compile_with_root( sources: T, includes: T, @@ -58,3 +84,88 @@ where //Codegen .codegen_to_string(&compile_options) } + +pub fn progress_pipeline_to_step_parsed( + sources: T, + includes: T, +) -> Result +where + S: SourceContainer + Debug, + T: IntoIterator, +{ + let project = construct_project_from_sources_and_includes(sources, includes); + let context = GlobalContext::new() + .with_source(project.get_sources(), None) + .expect("Failed to generate global context with sources!") + .with_source(project.get_includes(), None) + .expect("Failed to generate global context with includes!"); + let mut pipeline = get_pipeline(project, context); + + let parsed_project = pipeline.parse()?; + + Ok(ParsedProjectWrapper { parsed_project, context: pipeline.context }) +} + +pub fn progress_pipeline_to_step_indexed( + sources: T, + includes: T, + parsed_project_wrapper: ParsedProjectWrapper, +) -> Result +where + S: SourceContainer + Debug, + T: IntoIterator, +{ + let project = construct_project_from_sources_and_includes(sources, includes); + let mut pipeline = get_pipeline(project, parsed_project_wrapper.context); + + let indexed_project = pipeline.index(parsed_project_wrapper.parsed_project)?; + + Ok(IndexedProjectWrapper { indexed_project, context: pipeline.context }) +} + +pub fn progress_pipeline_to_step_annotated( + sources: T, + includes: T, + indexed_project_wrapper: IndexedProjectWrapper, +) -> Result +where + S: SourceContainer + Debug, + T: IntoIterator, +{ + let project = construct_project_from_sources_and_includes(sources, includes); + let mut pipeline = get_pipeline(project, indexed_project_wrapper.context); + + let annotated_project = pipeline.annotate(indexed_project_wrapper.indexed_project)?; + + Ok(AnnotatedProjectWrapper { annotated_project, context: pipeline.context }) +} + +fn construct_project_from_sources_and_includes(sources: T, includes: T) -> Project +where + S: SourceContainer + Debug, + T: IntoIterator, +{ + // Create a project + Project::new("TestProject".into()).with_sources(sources).with_source_includes(includes) +} + +fn get_pipeline(project: Project, context: GlobalContext) -> BuildPipeline +where + S: SourceContainer + Debug, +{ + let diagnostician = Diagnostician::null_diagnostician(); + let mut pipeline = BuildPipeline { + context, + project, + diagnostician, + compile_parameters: None, + linker: plc::linker::LinkerType::Internal, + mutable_participants: Default::default(), + participants: Default::default(), + module_name: Some("".to_string()), + }; + + pipeline.register_default_participants(); + + pipeline +} diff --git a/compiler/plc_driver/src/tests/header_generator.rs b/compiler/plc_driver/src/tests/header_generator.rs new file mode 100644 index 0000000000..9deffcd3bf --- /dev/null +++ b/compiler/plc_driver/src/tests/header_generator.rs @@ -0,0 +1,791 @@ +use std::{ + env, + path::{Path, PathBuf}, +}; + +use ast::ast::CompilationUnit; +use insta::{assert_snapshot, internals::SnapshotContents, Snapshot}; +use source_code::SourceCode; + +use crate::{ + pipelines::AnnotatedProject, + tests::{ + progress_pipeline_to_step_annotated, progress_pipeline_to_step_indexed, + progress_pipeline_to_step_parsed, IndexedProjectWrapper, ParsedProjectWrapper, + }, +}; + +// ----------------- // +// -- Test Case 1 -- // +// ----------------- // + +fn get_source_code_for_case_1_global_primitives() -> SourceCode { + SourceCode::new( + " + VAR_GLOBAL + gVarBool: BOOL; + + gVarSInt: SINT; + gVarInt: INT; + gVarDInt: DINT; + gVarLInt: LINT; + + gVarByte: BYTE; + gVarWord: WORD; + gVarDWord: DWORD; + gVarLWord: LWORD; + + gVarReal: REAL; + gVarLReal: LREAL; + + gVarDate: DATE; + gVarDateAndTime: DATE_AND_TIME; + END_VAR + ", + "global_primitives.pli", + ) +} + +#[test] +fn case_1_global_primitives_parsed_content() { + let json = get_parsed_content(get_source_code_for_case_1_global_primitives()); + assert_snapshot!(json); +} + +#[test] +fn case_1_global_primitives_indexed_content() { + let json = get_indexed_content( + "case_1_global_primitives_parsed_content", + get_source_code_for_case_1_global_primitives(), + ); + assert_snapshot!(json); +} + +#[test] +fn case_1_global_primitives_annotated_content() { + let annotated_project = get_annotated_project( + "case_1_global_primitives_indexed_content", + get_source_code_for_case_1_global_primitives(), + ); + + let json = serde_json::to_string_pretty(&annotated_project).expect("Failed to serialize item!"); + assert_snapshot!(json); + + case_1_global_primitives_compilation_units(&annotated_project); +} + +fn case_1_global_primitives_compilation_units(annotated_project: &AnnotatedProject) { + let json = get_compilation_units_content(annotated_project); + assert_snapshot!(json); +} + +// ----------------- // +// -- Test Case 2 -- // +// ----------------- // + +fn get_source_code_for_case_2_global_complex_types() -> SourceCode { + SourceCode::new( + " + VAR_GLOBAL + gVarString: STRING[255]; + gVarWString: WSTRING[6000]; + + gVarIntArray: ARRAY[0..11] OF INT; + + gVarRefToInt: REFERENCE TO INT; + gVarPointerToInt: REF_TO INT; + gVarRefToDate: REFERENCE TO DATE; + gVarPointerToDate: REF_TO DATE; + + gVarIntWithRange: INT(0..100); + END_VAR + ", + "global_complex_types.pli", + ) +} + +#[test] +fn case_2_global_complex_types_parsed_content() { + let json = get_parsed_content(get_source_code_for_case_2_global_complex_types()); + assert_snapshot!(json); +} + +#[test] +fn case_2_global_complex_types_indexed_content() { + let json = get_indexed_content( + "case_2_global_complex_types_parsed_content", + get_source_code_for_case_2_global_complex_types(), + ); + assert_snapshot!(json); +} + +#[test] +fn case_2_global_complex_types_annotated_content() { + let annotated_project = get_annotated_project( + "case_2_global_complex_types_indexed_content", + get_source_code_for_case_2_global_complex_types(), + ); + + let json = serde_json::to_string_pretty(&annotated_project).expect("Failed to serialize item!"); + assert_snapshot!(json); + + case_2_global_complex_types_compilation_units(&annotated_project); +} + +fn case_2_global_complex_types_compilation_units(annotated_project: &AnnotatedProject) { + let json = get_compilation_units_content(annotated_project); + assert_snapshot!(json); +} + +// ----------------- // +// -- Test Case 3 -- // +// ----------------- // + +fn get_source_code_for_case_3_enum_types() -> SourceCode { + SourceCode::new( + " + TYPE SimpleEnumType : ( + red, + green, + blue + ); + END_TYPE + + TYPE ComplexEnumType : ( + orange := 10, + yellow := 20, + purple := 30 + ); + END_TYPE + ", + "enum_types.pli", + ) +} + +#[test] +fn case_3_enum_types_parsed_content() { + let json = get_parsed_content(get_source_code_for_case_3_enum_types()); + assert_snapshot!(json); +} + +#[test] +fn case_3_enum_types_indexed_content() { + let json = + get_indexed_content("case_3_enum_types_parsed_content", get_source_code_for_case_3_enum_types()); + assert_snapshot!(json); +} + +#[test] +fn case_3_enum_types_annotated_content() { + let annotated_project = + get_annotated_project("case_3_enum_types_indexed_content", get_source_code_for_case_3_enum_types()); + + let json = serde_json::to_string_pretty(&annotated_project).expect("Failed to serialize item!"); + assert_snapshot!(json); + + case_3_enum_types_compilation_units(&annotated_project); +} + +fn case_3_enum_types_compilation_units(annotated_project: &AnnotatedProject) { + let json = get_compilation_units_content(annotated_project); + assert_snapshot!(json); +} + +// ----------------- // +// -- Test Case 4 -- // +// ----------------- // + +fn get_source_code_for_case_4_structs() -> SourceCode { + SourceCode::new( + " + TYPE ComplexEnumType : ( + orange := 10, + yellow := 20, + purple := 30 + ); + END_TYPE + + TYPE StructWithPrimitiveTypes: + STRUCT + Field1 : BYTE; + Field2 : INT; + Field3 : DINT; + END_STRUCT + END_TYPE + + TYPE StructWithComplexTypes: + STRUCT + byteField : BYTE; + intField : INT; + dIntField : DINT; + stringField : STRING[255]; + wStringField : WSTRING[6000]; + complexEnumTypeField : ComplexEnumType; + intArrayField: ARRAY[0..9] OF INT; + END_STRUCT + END_TYPE + ", + "structs.pli", + ) +} + +#[test] +fn case_4_structs_parsed_content() { + let json = get_parsed_content(get_source_code_for_case_4_structs()); + assert_snapshot!(json); +} + +#[test] +fn case_4_structs_indexed_content() { + let json = get_indexed_content("case_4_structs_parsed_content", get_source_code_for_case_4_structs()); + assert_snapshot!(json); +} + +#[test] +fn case_4_structs_annotated_content() { + let annotated_project = + get_annotated_project("case_4_structs_indexed_content", get_source_code_for_case_4_structs()); + + let json = serde_json::to_string_pretty(&annotated_project).expect("Failed to serialize item!"); + assert_snapshot!(json); + + case_4_structs_compilation_units(&annotated_project); +} + +fn case_4_structs_compilation_units(annotated_project: &AnnotatedProject) { + let json = get_compilation_units_content(annotated_project); + assert_snapshot!(json); +} + +// ----------------- // +// -- Test Case 5 -- // +// ----------------- // + +fn get_source_code_for_case_5_functions_with_primitive_types() -> SourceCode { + SourceCode::new( + " + FUNCTION fnThatIsVoid + VAR_INPUT + varIntInput: INT; + END_VAR + END_FUNCTION + + FUNCTION fnThatReturnsInt: INT + VAR_INPUT + varRealInputToFunc: REAL; + varIntInputToFunc: INT; + varDateAndTimeInputToFunc: DATE_AND_TIME; + END_VAR + VAR_IN_OUT + varRealInOutFunc: REAL; + END_VAR + VAR_OUTPUT + varIntOutputFunc: INT; + END_VAR + END_FUNCTION + + FUNCTION fnThatReturnsTimeOfDay : TOD + VAR_INPUT + varDateTimeInput : DT; + END_VAR + END_FUNCTION + ", + "functions_with_primitive_types.pli", + ) +} + +#[test] +fn case_5_functions_with_primitive_types_parsed_content() { + let json = get_parsed_content(get_source_code_for_case_5_functions_with_primitive_types()); + assert_snapshot!(json); +} + +#[test] +fn case_5_functions_with_primitive_types_indexed_content() { + let json = get_indexed_content( + "case_5_functions_with_primitive_types_parsed_content", + get_source_code_for_case_5_functions_with_primitive_types(), + ); + assert_snapshot!(json); +} + +#[test] +fn case_5_functions_with_primitive_types_annotated_content() { + let annotated_project = get_annotated_project( + "case_5_functions_with_primitive_types_indexed_content", + get_source_code_for_case_5_functions_with_primitive_types(), + ); + + let json = serde_json::to_string_pretty(&annotated_project).expect("Failed to serialize item!"); + assert_snapshot!(json); + + case_5_functions_with_primitive_types_compilation_units(&annotated_project); +} + +fn case_5_functions_with_primitive_types_compilation_units(annotated_project: &AnnotatedProject) { + let json = get_compilation_units_content(annotated_project); + assert_snapshot!(json); +} + +// ----------------- // +// -- Test Case 6 -- // +// ----------------- // + +fn get_source_code_for_case_6_functions_with_complex_types() -> SourceCode { + SourceCode::new( + " + TYPE ComplexEnumType : ( + orange := 10, + yellow := 20, + purple := 30 + ); + END_TYPE + + TYPE StructWithPrimitiveTypes: + STRUCT + Field1 : BYTE; + Field2 : INT; + Field3 : DINT; + END_STRUCT + END_TYPE + + TYPE StructWithComplexTypes: + STRUCT + byteField : BYTE; + intField : INT; + dIntField : DINT; + stringField : STRING[255]; + wStringField : WSTRING[6000]; + complexEnumTypeField : ComplexEnumType; + intArrayField: ARRAY[0..9] OF INT; + END_STRUCT + END_TYPE + + FUNCTION fnThatUsesStructWithPrimitiveTypes: StructWithPrimitiveTypes + VAR_INPUT + varStruct: StructWithPrimitiveTypes; + END_VAR + END_FUNCTION + + FUNCTION fnThatUsesStructWithComplexTypes: StructWithComplexTypes + VAR_INPUT + varStruct: StructWithComplexTypes; + varEnum: ComplexEnumType; + varString: STRING[200]; + varIntArray: ARRAY[0..14] OF INT; + END_VAR + END_FUNCTION + + FUNCTION fnThatUsesPrimitiveTypesAndReferences + VAR_INPUT + varInt: INT; + varRefToInt: REFERENCE TO INT; + varPointerToInt: REF_TO INT; + varRefToDate: REFERENCE TO DATE; + varPointerToDate: REF_TO DATE; + END_VAR + END_FUNCTION + + FUNCTION fnThatHasIntWithRange + VAR_INPUT + varIntWithRange: INT(0..99); + END_VAR + END_FUNCTION + + FUNCTION fnThatHasVariadicIntInput + VAR_INPUT + varIntInput: INT; + varVariadicInt: {sized} INT...; + END_VAR + END_FUNCTION + + FUNCTION fnThatHasVariadicStringInput + VAR_INPUT + varIntInput: INT; + varVariadicString: {sized} STRING...; + END_VAR + END_FUNCTION + + FUNCTION fnThatHasVariadicComplexTypeInput + VAR_INPUT + varIntInput: INT; + varVariadicStruct: {sized} StructWithPrimitiveTypes...; + END_VAR + END_FUNCTION + ", + "functions_with_complex_types.pli", + ) +} + +#[test] +fn case_6_functions_with_complex_types_parsed_content() { + let json = get_parsed_content(get_source_code_for_case_6_functions_with_complex_types()); + assert_snapshot!(json); +} + +#[test] +fn case_6_functions_with_complex_types_indexed_content() { + let json = get_indexed_content( + "case_6_functions_with_complex_types_parsed_content", + get_source_code_for_case_6_functions_with_complex_types(), + ); + assert_snapshot!(json); +} + +#[test] +fn case_6_functions_with_complex_types_annotated_content() { + let annotated_project = get_annotated_project( + "case_6_functions_with_complex_types_indexed_content", + get_source_code_for_case_6_functions_with_complex_types(), + ); + + let json = serde_json::to_string_pretty(&annotated_project).expect("Failed to serialize item!"); + assert_snapshot!(json); + + case_6_functions_with_complex_types_compilation_units(&annotated_project); +} + +fn case_6_functions_with_complex_types_compilation_units(annotated_project: &AnnotatedProject) { + let json = get_compilation_units_content(annotated_project); + assert_snapshot!(json); +} + +// ----------------- // +// -- Test Case 7 -- // +// ----------------- // + +fn get_source_code_for_case_7_function_blocks() -> SourceCode { + SourceCode::new( + " + FUNCTION_BLOCK fbThatHasSimpleTypes + VAR + varInt : INT; + END_VAR + VAR_OUTPUT + outVarInt : INT; + END_VAR + VAR_IN_OUT + inOutVarInt : INT; + END_VAR + METHOD FB_INIT + END_METHOD + END_FUNCTION_BLOCK + ", + "function_blocks.pli", + ) +} + +#[test] +fn case_7_function_blocks_parsed_content() { + let json = get_parsed_content(get_source_code_for_case_7_function_blocks()); + assert_snapshot!(json); +} + +#[test] +fn case_7_function_blocks_indexed_content() { + let json = get_indexed_content( + "case_7_function_blocks_parsed_content", + get_source_code_for_case_7_function_blocks(), + ); + assert_snapshot!(json); +} + +#[test] +fn case_7_function_blocks_annotated_content() { + let annotated_project = get_annotated_project( + "case_7_function_blocks_indexed_content", + get_source_code_for_case_7_function_blocks(), + ); + + let json = serde_json::to_string_pretty(&annotated_project).expect("Failed to serialize item!"); + assert_snapshot!(json); + + case_7_function_blocks_compilation_units(&annotated_project); +} + +fn case_7_function_blocks_compilation_units(annotated_project: &AnnotatedProject) { + let json = get_compilation_units_content(annotated_project); + assert_snapshot!(json); +} + +// ----------------- // +// -- Test Case 8 -- // +// ----------------- // + +fn get_source_code_for_case_8_function_blocks_with_inheritance() -> SourceCode { + SourceCode::new( + " + FUNCTION_BLOCK fbGreatGrandParent + VAR + varGreatGrandParentInt: INT; + END_VAR + END_FUNCTION_BLOCK + + FUNCTION_BLOCK fbGrandParent extends fbGreatGrandParent + VAR + varGrandParentInt: INT; + END_VAR + END_FUNCTION_BLOCK + + FUNCTION_BLOCK fbParent extends fbGrandParent + VAR + varParentInt: INT; + END_VAR + END_FUNCTION_BLOCK + + FUNCTION_BLOCK fbChild extends fbParent + VAR + varChildInt: INT; + END_VAR + END_FUNCTION_BLOCK + ", + "function_blocks_with_inheritance.pli", + ) +} + +#[test] +fn case_8_function_blocks_with_inheritance_parsed_content() { + let json = get_parsed_content(get_source_code_for_case_8_function_blocks_with_inheritance()); + assert_snapshot!(json); +} + +#[test] +fn case_8_function_blocks_with_inheritance_indexed_content() { + let json = get_indexed_content( + "case_8_function_blocks_with_inheritance_parsed_content", + get_source_code_for_case_8_function_blocks_with_inheritance(), + ); + assert_snapshot!(json); +} + +#[test] +fn case_8_function_blocks_with_inheritance_annotated_content() { + let annotated_project = get_annotated_project( + "case_8_function_blocks_with_inheritance_indexed_content", + get_source_code_for_case_8_function_blocks_with_inheritance(), + ); + + let json = serde_json::to_string_pretty(&annotated_project).expect("Failed to serialize item!"); + assert_snapshot!(json); + + case_8_function_blocks_with_inheritance_compilation_units(&annotated_project); +} + +fn case_8_function_blocks_with_inheritance_compilation_units(annotated_project: &AnnotatedProject) { + let json = get_compilation_units_content(annotated_project); + assert_snapshot!(json); +} + +// ----------------- // +// -- Test Case 9 -- // +// ----------------- // + +fn get_source_code_for_case_9_programs() -> SourceCode { + SourceCode::new( + " + TYPE ComplexEnumType : ( + orange := 10, + yellow := 20, + purple := 30 + ); + END_TYPE + + PROGRAM prog + VAR + inOutVar : ComplexEnumType; + outVar: ComplexEnumType; + END_VAR + END_PROGRAM + ", + "programs.pli", + ) +} + +#[test] +fn case_9_programs_parsed_content() { + let json = get_parsed_content(get_source_code_for_case_9_programs()); + assert_snapshot!(json); +} + +#[test] +fn case_9_programs_indexed_content() { + let json = get_indexed_content("case_9_programs_parsed_content", get_source_code_for_case_9_programs()); + assert_snapshot!(json); +} + +#[test] +fn case_9_programs_annotated_content() { + let annotated_project = + get_annotated_project("case_9_programs_indexed_content", get_source_code_for_case_9_programs()); + + let json = serde_json::to_string_pretty(&annotated_project).expect("Failed to serialize item!"); + assert_snapshot!(json); + + case_9_programs_compilation_units(&annotated_project); +} + +fn case_9_programs_compilation_units(annotated_project: &AnnotatedProject) { + let json = get_compilation_units_content(annotated_project); + assert_snapshot!(json); +} + +// ------------------ // +// -- Test Case 10 -- // +// ------------------ // + +fn get_source_code_for_case_10_aliases() -> SourceCode { + SourceCode::new( + " + TYPE T_String : STRING[50]; + END_TYPE + + TYPE T_DInt : DINT; + END_TYPE + + TYPE T_Array : ARRAY[0..11] OF INT; + END_TYPE + + TYPE T_Bool : BOOL; + END_TYPE + + FUNCTION fnThatUsesAliases + VAR_INPUT + varStringInput: T_String; + varDIntInput: T_DInt; + varArrayOfIntInput: T_Array; + varBoolInput: T_Bool; + END_VAR + END_FUNCTION + ", + "aliases.pli", + ) +} + +#[test] +fn case_10_aliases_parsed_content() { + let json = get_parsed_content(get_source_code_for_case_10_aliases()); + assert_snapshot!(json); +} + +#[test] +fn case_10_aliases_indexed_content() { + let json = get_indexed_content("case_10_aliases_parsed_content", get_source_code_for_case_10_aliases()); + assert_snapshot!(json); +} + +#[test] +fn case_10_aliases_annotated_content() { + let annotated_project = + get_annotated_project("case_10_aliases_indexed_content", get_source_code_for_case_10_aliases()); + + let json = serde_json::to_string_pretty(&annotated_project).expect("Failed to serialize item!"); + assert_snapshot!(json); + + case_10_aliases_compilation_units(&annotated_project); +} + +fn case_10_aliases_compilation_units(annotated_project: &AnnotatedProject) { + let json = get_compilation_units_content(annotated_project); + assert_snapshot!(json); +} + +// -------------------------------- // +// -- Re-usable pipeline methods -- // +// -------------------------------- // + +/// Returns a json string of the parsed source code. +fn get_parsed_content(source_code: SourceCode) -> String { + let result = progress_pipeline_to_step_parsed(vec![source_code], vec![]); + assert!(result.is_ok()); + + serde_json::to_string_pretty(&result.unwrap()).expect("Failed to serialize item!") +} + +/// Returns a json string of the indexed project. +/// +/// --- +/// +/// The parsed project that is passed as part of this step is loaded based on the given test name. +/// +/// ### Example: +/// ```rust +/// let json = get_indexed_content("case_1_global_primitives_parsed_content", get_source_code_for_case_1_global_primitives()); +/// ``` +/// Will load the snapshot that was generated during the run of the `fn case_1_global_primitives_parsed_content()` test. +fn get_indexed_content(test_name: &str, source_code: SourceCode) -> String { + let snapshot_string = extract_string_item_from_snapshot(test_name); + let parsed_project_wrapper = serde_json::from_str::(snapshot_string) + .expect("Failed to deserialize snapshot content into a ParsedProject!"); + + let result = progress_pipeline_to_step_indexed(vec![source_code], vec![], parsed_project_wrapper); + assert!(result.is_ok()); + + serde_json::to_string_pretty(&result.unwrap()).expect("Failed to serialize item!") +} + +/// Returns the annotated project. +/// +/// --- +/// +/// The indexed project that is passed as part of this step is loaded based on the given test name. +/// +/// ### Example: +/// ```rust +/// let annotated_project = get_annotated_project("case_1_global_primitives_indexed_content", get_source_code_for_case_1_global_primitives()); +/// ``` +/// Will load the snapshot that was generated during the run of the `fn case_1_global_primitives_indexed_content()` test. +fn get_annotated_project(test_name: &str, source_code: SourceCode) -> AnnotatedProject { + let snapshot_string = extract_string_item_from_snapshot(test_name); + let indexed_project_wrapper = serde_json::from_str::(snapshot_string) + .expect("Failed to deserialize snapshot content into an IndexedProject!"); + + let result = progress_pipeline_to_step_annotated(vec![source_code], vec![], indexed_project_wrapper); + assert!(result.is_ok()); + + let wrapper = result.unwrap(); + + wrapper.annotated_project +} + +/// Returns json content for the compilation units in the annotated project. +/// +/// --- +/// +/// This is used by the header generator tests in the in the plc_header_generator crate. +fn get_compilation_units_content(annotated_project: &AnnotatedProject) -> String { + let mut compilation_units: Vec<&CompilationUnit> = Vec::new(); + + for unit in &annotated_project.units { + compilation_units.push(unit.get_unit()); + } + + serde_json::to_string_pretty(&compilation_units).expect("Failed to serialize item!") +} + +// -------------------- // +// -- Helper Methods -- // +// -------------------- // + +/// Extracts the object from the path to the snapshot +fn extract_string_item_from_snapshot(test_name: &str) -> &'static str { + let path = get_full_snapshot_path_to_test_with_test_name(test_name); + let snapshot = Snapshot::from_file(path.as_path()).expect("Could not find the snapshot!"); + + let contents = match snapshot.contents() { + SnapshotContents::Text(text_snapshot_contents) => text_snapshot_contents.to_string(), + _ => String::new(), + }; + + Box::leak(contents.into_boxed_str()) +} + +/// Gets the full snapshot path of the given test for this test instance +fn get_full_snapshot_path_to_test_with_test_name(test_name: &str) -> PathBuf { + // TODO: The pathing should probably be re-evaluated + let current_dir = env::current_dir().expect("Unable to determine the current directory!"); + let path = format!("src/tests/snapshots/plc_driver__tests__header_generator__{test_name}.snap"); + + let path = current_dir.join(Path::new(&path)); + + path +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_10_aliases_annotated_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_10_aliases_annotated_content.snap new file mode 100644 index 0000000000..b28364c29b --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_10_aliases_annotated_content.snap @@ -0,0 +1,6057 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "units": [ + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 5, + "name": "fnThatUsesAliases", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varStringInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_String", + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 24, + "offset": 246 + }, + "end": { + "line": 15, + "column": 32, + "offset": 254 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 230 + }, + "end": { + "line": 15, + "column": 22, + "offset": 244 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + { + "name": "varDIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_DInt", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 22, + "offset": 278 + }, + "end": { + "line": 16, + "column": 28, + "offset": 284 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 8, + "offset": 264 + }, + "end": { + "line": 16, + "column": 20, + "offset": 276 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + { + "name": "varArrayOfIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_Array", + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 28, + "offset": 314 + }, + "end": { + "line": 17, + "column": 35, + "offset": 321 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 294 + }, + "end": { + "line": 17, + "column": 26, + "offset": 312 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + { + "name": "varBoolInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_Bool", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 22, + "offset": 345 + }, + "end": { + "line": 18, + "column": 28, + "offset": 351 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 8, + "offset": 331 + }, + "end": { + "line": 18, + "column": 20, + "offset": 343 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 4, + "offset": 212 + }, + "end": { + "line": 14, + "column": 13, + "offset": 221 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 181 + }, + "end": { + "line": 20, + "column": 16, + "offset": 381 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 13, + "offset": 190 + }, + "end": { + "line": 13, + "column": 30, + "offset": 207 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fnThatUsesAliases", + "type_name": "fnThatUsesAliases", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 369 + }, + "end": { + "line": 19, + "column": 11, + "offset": 364 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 13, + "offset": 190 + }, + "end": { + "line": 13, + "column": 30, + "offset": 207 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 369 + }, + "end": { + "line": 20, + "column": 16, + "offset": 381 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StringType": { + "name": "T_String", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 50 + } + }, + "id": 1, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 27, + "offset": 28 + }, + "end": { + "line": 1, + "column": 29, + "offset": 30 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 17, + "offset": 18 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + }, + { + "data_type": { + "SubRangeType": { + "name": "T_DInt", + "referenced_type": "DINT", + "bounds": null + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 9, + "offset": 56 + }, + "end": { + "line": 4, + "column": 15, + "offset": 62 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "T_Array", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 25, + "offset": 110 + }, + "end": { + "line": 7, + "column": 26, + "offset": 111 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 11 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 28, + "offset": 113 + }, + "end": { + "line": 7, + "column": 30, + "offset": 115 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + } + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 25, + "offset": 110 + }, + "end": { + "line": 7, + "column": 30, + "offset": 115 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 35, + "offset": 120 + }, + "end": { + "line": 7, + "column": 38, + "offset": 123 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 9, + "offset": 94 + }, + "end": { + "line": 7, + "column": 16, + "offset": 101 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + }, + { + "data_type": { + "SubRangeType": { + "name": "T_Bool", + "referenced_type": "BOOL", + "bounds": null + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 9, + "offset": 148 + }, + "end": { + "line": 10, + "column": 15, + "offset": 154 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "aliases.pli" + } + }, + "dependencies": [ + { + "Datatype": "fnThatUsesAliases" + }, + { + "Datatype": "T_String" + }, + { + "Datatype": "STRING" + }, + { + "Datatype": "T_DInt" + }, + { + "Datatype": "DINT" + }, + { + "Datatype": "T_Array" + }, + { + "Datatype": "INT" + }, + { + "Datatype": "T_Bool" + }, + { + "Datatype": "BOOL" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + }, + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 60, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + }, + "dependencies": [ + { + "Datatype": "__init___TestProject" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + } + ], + "index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": { + "fnthatusesaliases": [ + { + "Function": { + "name": "fnThatUsesAliases", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 13, + "offset": 190 + }, + "end": { + "line": 13, + "column": 30, + "offset": 207 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init___testproject": [ + { + "Function": { + "name": "__init___TestProject", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "fnthatusesaliases": { + "call_name": "fnThatUsesAliases", + "type_name": "fnThatUsesAliases", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 369 + }, + "end": { + "line": 19, + "column": 11, + "offset": 364 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + "__init___testproject": { + "call_name": "__init___TestProject", + "type_name": "__init___TestProject", + "associated_class": null, + "implementation_type": "ProjectInit", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "t_string": [ + { + "name": "T_String", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 51 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 17, + "offset": 18 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "t_dint": [ + { + "name": "T_DInt", + "initial_value": null, + "information": { + "Alias": { + "name": "T_DInt", + "referenced_type": "DINT" + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 9, + "offset": 56 + }, + "end": { + "line": 4, + "column": 15, + "offset": 62 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "t_array": [ + { + "name": "T_Array", + "initial_value": null, + "information": { + "Array": { + "name": "T_Array", + "inner_type_name": "INT", + "dimensions": [ + { + "start_offset": { + "ConstExpression": [ + 0, + 0 + ] + }, + "end_offset": { + "ConstExpression": [ + 1, + 0 + ] + } + } + ] + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 9, + "offset": 94 + }, + "end": { + "line": 7, + "column": 16, + "offset": 101 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "t_bool": [ + { + "name": "T_Bool", + "initial_value": null, + "information": { + "Alias": { + "name": "T_Bool", + "referenced_type": "BOOL" + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 9, + "offset": 148 + }, + "end": { + "line": 10, + "column": 15, + "offset": 154 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "fnthatusesaliases": [ + { + "name": "fnThatUsesAliases", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatUsesAliases", + "members": [ + { + "name": "varStringInput", + "qualified_name": "fnThatUsesAliases.varStringInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "T_String", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 230 + }, + "end": { + "line": 15, + "column": 22, + "offset": 244 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "varargs": null + }, + { + "name": "varDIntInput", + "qualified_name": "fnThatUsesAliases.varDIntInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "T_DInt", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 8, + "offset": 264 + }, + "end": { + "line": 16, + "column": 20, + "offset": 276 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "varargs": null + }, + { + "name": "varArrayOfIntInput", + "qualified_name": "fnThatUsesAliases.varArrayOfIntInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "T_Array", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 294 + }, + "end": { + "line": 17, + "column": 26, + "offset": 312 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "varargs": null + }, + { + "name": "varBoolInput", + "qualified_name": "fnThatUsesAliases.varBoolInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "T_Bool", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 8, + "offset": 331 + }, + "end": { + "line": 18, + "column": 20, + "offset": 343 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 13, + "offset": 190 + }, + "end": { + "line": 13, + "column": 30, + "offset": 207 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "__init___testproject": [ + { + "name": "__init___TestProject", + "initial_value": null, + "information": { + "Struct": { + "name": "__init___TestProject", + "members": [], + "source": { + "Pou": "ProjectInit" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 25, + "offset": 110 + }, + "end": { + "line": 7, + "column": 26, + "offset": 111 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 11 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 28, + "offset": 113 + }, + "end": { + "line": 7, + "column": 30, + "offset": 115 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "annotations": { + "annotation_map": { + "type_map": {}, + "type_hint_map": {}, + "generic_nature_map": {}, + "hidden_function_calls": {}, + "new_index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": {} + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": {}, + "type_index": { + "types": { + "inner_map": {} + }, + "pou_types": { + "inner_map": {} + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + } + }, + "bool_id": 83, + "bool_annotation": { + "Value": { + "resulting_type": "BOOL" + } + } + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_10_aliases_compilation_units.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_10_aliases_compilation_units.snap new file mode 100644 index 0000000000..94bf96de21 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_10_aliases_compilation_units.snap @@ -0,0 +1,726 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +[ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 5, + "name": "fnThatUsesAliases", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varStringInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_String", + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 24, + "offset": 246 + }, + "end": { + "line": 15, + "column": 32, + "offset": 254 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 230 + }, + "end": { + "line": 15, + "column": 22, + "offset": 244 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + { + "name": "varDIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_DInt", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 22, + "offset": 278 + }, + "end": { + "line": 16, + "column": 28, + "offset": 284 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 8, + "offset": 264 + }, + "end": { + "line": 16, + "column": 20, + "offset": 276 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + { + "name": "varArrayOfIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_Array", + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 28, + "offset": 314 + }, + "end": { + "line": 17, + "column": 35, + "offset": 321 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 294 + }, + "end": { + "line": 17, + "column": 26, + "offset": 312 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + { + "name": "varBoolInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_Bool", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 22, + "offset": 345 + }, + "end": { + "line": 18, + "column": 28, + "offset": 351 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 8, + "offset": 331 + }, + "end": { + "line": 18, + "column": 20, + "offset": 343 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 4, + "offset": 212 + }, + "end": { + "line": 14, + "column": 13, + "offset": 221 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 181 + }, + "end": { + "line": 20, + "column": 16, + "offset": 381 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 13, + "offset": 190 + }, + "end": { + "line": 13, + "column": 30, + "offset": 207 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fnThatUsesAliases", + "type_name": "fnThatUsesAliases", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 369 + }, + "end": { + "line": 19, + "column": 11, + "offset": 364 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 13, + "offset": 190 + }, + "end": { + "line": 13, + "column": 30, + "offset": 207 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 369 + }, + "end": { + "line": 20, + "column": 16, + "offset": 381 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StringType": { + "name": "T_String", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 50 + } + }, + "id": 1, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 27, + "offset": 28 + }, + "end": { + "line": 1, + "column": 29, + "offset": 30 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 17, + "offset": 18 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + }, + { + "data_type": { + "SubRangeType": { + "name": "T_DInt", + "referenced_type": "DINT", + "bounds": null + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 9, + "offset": 56 + }, + "end": { + "line": 4, + "column": 15, + "offset": 62 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "T_Array", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 25, + "offset": 110 + }, + "end": { + "line": 7, + "column": 26, + "offset": 111 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 11 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 28, + "offset": 113 + }, + "end": { + "line": 7, + "column": 30, + "offset": 115 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + } + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 25, + "offset": 110 + }, + "end": { + "line": 7, + "column": 30, + "offset": 115 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 35, + "offset": 120 + }, + "end": { + "line": 7, + "column": 38, + "offset": 123 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 9, + "offset": 94 + }, + "end": { + "line": 7, + "column": 16, + "offset": 101 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + }, + { + "data_type": { + "SubRangeType": { + "name": "T_Bool", + "referenced_type": "BOOL", + "bounds": null + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 9, + "offset": 148 + }, + "end": { + "line": 10, + "column": 15, + "offset": 154 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "aliases.pli" + } + }, + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 60, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + } +] diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_10_aliases_indexed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_10_aliases_indexed_content.snap new file mode 100644 index 0000000000..ed7420255c --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_10_aliases_indexed_content.snap @@ -0,0 +1,5814 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "indexed_project": { + "project": { + "units": [ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 5, + "name": "fnThatUsesAliases", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varStringInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_String", + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 24, + "offset": 246 + }, + "end": { + "line": 15, + "column": 32, + "offset": 254 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 230 + }, + "end": { + "line": 15, + "column": 22, + "offset": 244 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + { + "name": "varDIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_DInt", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 22, + "offset": 278 + }, + "end": { + "line": 16, + "column": 28, + "offset": 284 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 8, + "offset": 264 + }, + "end": { + "line": 16, + "column": 20, + "offset": 276 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + { + "name": "varArrayOfIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_Array", + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 28, + "offset": 314 + }, + "end": { + "line": 17, + "column": 35, + "offset": 321 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 294 + }, + "end": { + "line": 17, + "column": 26, + "offset": 312 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + { + "name": "varBoolInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_Bool", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 22, + "offset": 345 + }, + "end": { + "line": 18, + "column": 28, + "offset": 351 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 8, + "offset": 331 + }, + "end": { + "line": 18, + "column": 20, + "offset": 343 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 4, + "offset": 212 + }, + "end": { + "line": 14, + "column": 13, + "offset": 221 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 181 + }, + "end": { + "line": 20, + "column": 16, + "offset": 381 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 13, + "offset": 190 + }, + "end": { + "line": 13, + "column": 30, + "offset": 207 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fnThatUsesAliases", + "type_name": "fnThatUsesAliases", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 369 + }, + "end": { + "line": 19, + "column": 11, + "offset": 364 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 13, + "offset": 190 + }, + "end": { + "line": 13, + "column": 30, + "offset": 207 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 369 + }, + "end": { + "line": 20, + "column": 16, + "offset": 381 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StringType": { + "name": "T_String", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 50 + } + }, + "id": 1, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 27, + "offset": 28 + }, + "end": { + "line": 1, + "column": 29, + "offset": 30 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 17, + "offset": 18 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + }, + { + "data_type": { + "SubRangeType": { + "name": "T_DInt", + "referenced_type": "DINT", + "bounds": null + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 9, + "offset": 56 + }, + "end": { + "line": 4, + "column": 15, + "offset": 62 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "T_Array", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 25, + "offset": 110 + }, + "end": { + "line": 7, + "column": 26, + "offset": 111 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 11 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 28, + "offset": 113 + }, + "end": { + "line": 7, + "column": 30, + "offset": 115 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + } + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 25, + "offset": 110 + }, + "end": { + "line": 7, + "column": 30, + "offset": 115 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 35, + "offset": 120 + }, + "end": { + "line": 7, + "column": 38, + "offset": 123 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 9, + "offset": 94 + }, + "end": { + "line": 7, + "column": 16, + "offset": 101 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + }, + { + "data_type": { + "SubRangeType": { + "name": "T_Bool", + "referenced_type": "BOOL", + "bounds": null + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 9, + "offset": 148 + }, + "end": { + "line": 10, + "column": 15, + "offset": 154 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "aliases.pli" + } + } + ] + }, + "index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": { + "fnthatusesaliases": [ + { + "Function": { + "name": "fnThatUsesAliases", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 13, + "offset": 190 + }, + "end": { + "line": 13, + "column": 30, + "offset": 207 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "fnthatusesaliases": { + "call_name": "fnThatUsesAliases", + "type_name": "fnThatUsesAliases", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 369 + }, + "end": { + "line": 19, + "column": 11, + "offset": 364 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "t_string": [ + { + "name": "T_String", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 51 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 17, + "offset": 18 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "t_dint": [ + { + "name": "T_DInt", + "initial_value": null, + "information": { + "Alias": { + "name": "T_DInt", + "referenced_type": "DINT" + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 9, + "offset": 56 + }, + "end": { + "line": 4, + "column": 15, + "offset": 62 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "t_array": [ + { + "name": "T_Array", + "initial_value": null, + "information": { + "Array": { + "name": "T_Array", + "inner_type_name": "INT", + "dimensions": [ + { + "start_offset": { + "ConstExpression": [ + 0, + 0 + ] + }, + "end_offset": { + "ConstExpression": [ + 1, + 0 + ] + } + } + ] + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 9, + "offset": 94 + }, + "end": { + "line": 7, + "column": 16, + "offset": 101 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "t_bool": [ + { + "name": "T_Bool", + "initial_value": null, + "information": { + "Alias": { + "name": "T_Bool", + "referenced_type": "BOOL" + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 9, + "offset": 148 + }, + "end": { + "line": 10, + "column": 15, + "offset": 154 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "fnthatusesaliases": [ + { + "name": "fnThatUsesAliases", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatUsesAliases", + "members": [ + { + "name": "varStringInput", + "qualified_name": "fnThatUsesAliases.varStringInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "T_String", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 230 + }, + "end": { + "line": 15, + "column": 22, + "offset": 244 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "varargs": null + }, + { + "name": "varDIntInput", + "qualified_name": "fnThatUsesAliases.varDIntInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "T_DInt", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 8, + "offset": 264 + }, + "end": { + "line": 16, + "column": 20, + "offset": 276 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "varargs": null + }, + { + "name": "varArrayOfIntInput", + "qualified_name": "fnThatUsesAliases.varArrayOfIntInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "T_Array", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 294 + }, + "end": { + "line": 17, + "column": 26, + "offset": 312 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "varargs": null + }, + { + "name": "varBoolInput", + "qualified_name": "fnThatUsesAliases.varBoolInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "T_Bool", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 8, + "offset": 331 + }, + "end": { + "line": 18, + "column": 20, + "offset": 343 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 13, + "offset": 190 + }, + "end": { + "line": 13, + "column": 30, + "offset": 207 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 25, + "offset": 110 + }, + "end": { + "line": 7, + "column": 26, + "offset": 111 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 11 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 28, + "offset": 113 + }, + "end": { + "line": 7, + "column": 30, + "offset": 115 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "unresolvables": [] + }, + "context": { + "sources": { + "aliases.pli": { + "source": "\n TYPE T_String : STRING[50];\n END_TYPE\n\n TYPE T_DInt : DINT;\n END_TYPE\n\n TYPE T_Array : ARRAY[0..11] OF INT;\n END_TYPE\n\n TYPE T_Bool : BOOL;\n END_TYPE\n\n FUNCTION fnThatUsesAliases\n VAR_INPUT\n varStringInput: T_String;\n varDIntInput: T_DInt;\n varArrayOfIntInput: T_Array;\n varBoolInput: T_Bool;\n END_VAR\n END_FUNCTION\n ", + "path": "aliases.pli" + } + }, + "provider": { + "current_id": 60 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_10_aliases_parsed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_10_aliases_parsed_content.snap new file mode 100644 index 0000000000..31a6de5a26 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_10_aliases_parsed_content.snap @@ -0,0 +1,631 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "parsed_project": { + "units": [ + { + "global_vars": [], + "var_config": [], + "pous": [ + { + "id": 5, + "name": "fnThatUsesAliases", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varStringInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_String", + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 24, + "offset": 246 + }, + "end": { + "line": 15, + "column": 32, + "offset": 254 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 230 + }, + "end": { + "line": 15, + "column": 22, + "offset": 244 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + { + "name": "varDIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_DInt", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 22, + "offset": 278 + }, + "end": { + "line": 16, + "column": 28, + "offset": 284 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 8, + "offset": 264 + }, + "end": { + "line": 16, + "column": 20, + "offset": 276 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + { + "name": "varArrayOfIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_Array", + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 28, + "offset": 314 + }, + "end": { + "line": 17, + "column": 35, + "offset": 321 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 294 + }, + "end": { + "line": 17, + "column": 26, + "offset": 312 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + }, + { + "name": "varBoolInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "T_Bool", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 22, + "offset": 345 + }, + "end": { + "line": 18, + "column": 28, + "offset": 351 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 8, + "offset": 331 + }, + "end": { + "line": 18, + "column": 20, + "offset": 343 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 4, + "offset": 212 + }, + "end": { + "line": 14, + "column": 13, + "offset": 221 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 181 + }, + "end": { + "line": 20, + "column": 16, + "offset": 381 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 13, + "offset": 190 + }, + "end": { + "line": 13, + "column": 30, + "offset": 207 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fnThatUsesAliases", + "type_name": "fnThatUsesAliases", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 369 + }, + "end": { + "line": 19, + "column": 11, + "offset": 364 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 13, + "offset": 190 + }, + "end": { + "line": 13, + "column": 30, + "offset": 207 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 369 + }, + "end": { + "line": 20, + "column": 16, + "offset": 381 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StringType": { + "name": "T_String", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 50 + } + }, + "id": 1, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 27, + "offset": 28 + }, + "end": { + "line": 1, + "column": 29, + "offset": 30 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 17, + "offset": 18 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + }, + { + "data_type": { + "SubRangeType": { + "name": "T_DInt", + "referenced_type": "DINT", + "bounds": null + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 9, + "offset": 56 + }, + "end": { + "line": 4, + "column": 15, + "offset": 62 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "T_Array", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 25, + "offset": 110 + }, + "end": { + "line": 7, + "column": 26, + "offset": 111 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 11 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 28, + "offset": 113 + }, + "end": { + "line": 7, + "column": 30, + "offset": 115 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + } + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 25, + "offset": 110 + }, + "end": { + "line": 7, + "column": 30, + "offset": 115 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 35, + "offset": 120 + }, + "end": { + "line": 7, + "column": 38, + "offset": 123 + } + } + }, + "file": { + "File": "aliases.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 9, + "offset": 94 + }, + "end": { + "line": 7, + "column": 16, + "offset": 101 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + }, + { + "data_type": { + "SubRangeType": { + "name": "T_Bool", + "referenced_type": "BOOL", + "bounds": null + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 9, + "offset": 148 + }, + "end": { + "line": 10, + "column": 15, + "offset": 154 + } + } + }, + "file": { + "File": "aliases.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "aliases.pli" + } + } + ] + }, + "context": { + "sources": { + "aliases.pli": { + "source": "\n TYPE T_String : STRING[50];\n END_TYPE\n\n TYPE T_DInt : DINT;\n END_TYPE\n\n TYPE T_Array : ARRAY[0..11] OF INT;\n END_TYPE\n\n TYPE T_Bool : BOOL;\n END_TYPE\n\n FUNCTION fnThatUsesAliases\n VAR_INPUT\n varStringInput: T_String;\n varDIntInput: T_DInt;\n varArrayOfIntInput: T_Array;\n varBoolInput: T_Bool;\n END_VAR\n END_FUNCTION\n ", + "path": "aliases.pli" + } + }, + "provider": { + "current_id": 6 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_1_global_primitives_annotated_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_1_global_primitives_annotated_content.snap new file mode 100644 index 0000000000..a25ed692b5 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_1_global_primitives_annotated_content.snap @@ -0,0 +1,6038 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "units": [ + { + "unit": { + "global_vars": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "gVarBool", + "data_type_declaration": { + "Reference": { + "referenced_type": "BOOL", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 18, + "offset": 34 + }, + "end": { + "line": 2, + "column": 22, + "offset": 38 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 8, + "offset": 24 + }, + "end": { + "line": 2, + "column": 16, + "offset": 32 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarSInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "SINT", + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 18, + "offset": 59 + }, + "end": { + "line": 4, + "column": 22, + "offset": 63 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 8, + "offset": 49 + }, + "end": { + "line": 4, + "column": 16, + "offset": 57 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 17, + "offset": 82 + }, + "end": { + "line": 5, + "column": 20, + "offset": 85 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 8, + "offset": 73 + }, + "end": { + "line": 5, + "column": 15, + "offset": 80 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 18, + "offset": 105 + }, + "end": { + "line": 6, + "column": 22, + "offset": 109 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 8, + "offset": 95 + }, + "end": { + "line": 6, + "column": 16, + "offset": 103 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarLInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "LINT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 18, + "offset": 129 + }, + "end": { + "line": 7, + "column": 22, + "offset": 133 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 8, + "offset": 119 + }, + "end": { + "line": 7, + "column": 16, + "offset": 127 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarByte", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 18, + "offset": 154 + }, + "end": { + "line": 9, + "column": 22, + "offset": 158 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 144 + }, + "end": { + "line": 9, + "column": 16, + "offset": 152 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarWord", + "data_type_declaration": { + "Reference": { + "referenced_type": "WORD", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 18, + "offset": 178 + }, + "end": { + "line": 10, + "column": 22, + "offset": 182 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 168 + }, + "end": { + "line": 10, + "column": 16, + "offset": 176 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDWord", + "data_type_declaration": { + "Reference": { + "referenced_type": "DWORD", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 19, + "offset": 203 + }, + "end": { + "line": 11, + "column": 24, + "offset": 208 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 192 + }, + "end": { + "line": 11, + "column": 17, + "offset": 201 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarLWord", + "data_type_declaration": { + "Reference": { + "referenced_type": "LWORD", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 19, + "offset": 229 + }, + "end": { + "line": 12, + "column": 24, + "offset": 234 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 218 + }, + "end": { + "line": 12, + "column": 17, + "offset": 227 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarReal", + "data_type_declaration": { + "Reference": { + "referenced_type": "REAL", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 18, + "offset": 255 + }, + "end": { + "line": 14, + "column": 22, + "offset": 259 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 8, + "offset": 245 + }, + "end": { + "line": 14, + "column": 16, + "offset": 253 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarLReal", + "data_type_declaration": { + "Reference": { + "referenced_type": "LREAL", + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 19, + "offset": 280 + }, + "end": { + "line": 15, + "column": 24, + "offset": 285 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 269 + }, + "end": { + "line": 15, + "column": 17, + "offset": 278 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 18, + "offset": 306 + }, + "end": { + "line": 17, + "column": 22, + "offset": 310 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 296 + }, + "end": { + "line": 17, + "column": 16, + "offset": 304 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDateAndTime", + "data_type_declaration": { + "Reference": { + "referenced_type": "DATE_AND_TIME", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 337 + }, + "end": { + "line": 18, + "column": 38, + "offset": 350 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 8, + "offset": 320 + }, + "end": { + "line": 18, + "column": 23, + "offset": 335 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 1, + "column": 14, + "offset": 15 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [], + "file": { + "File": "global_primitives.pli" + } + }, + "dependencies": [ + { + "Variable": "gVarBool" + }, + { + "Datatype": "BOOL" + }, + { + "Variable": "gVarSInt" + }, + { + "Datatype": "SINT" + }, + { + "Variable": "gVarInt" + }, + { + "Datatype": "INT" + }, + { + "Variable": "gVarDInt" + }, + { + "Datatype": "DINT" + }, + { + "Variable": "gVarLInt" + }, + { + "Datatype": "LINT" + }, + { + "Variable": "gVarByte" + }, + { + "Datatype": "BYTE" + }, + { + "Variable": "gVarWord" + }, + { + "Datatype": "WORD" + }, + { + "Variable": "gVarDWord" + }, + { + "Datatype": "DWORD" + }, + { + "Variable": "gVarLWord" + }, + { + "Datatype": "LWORD" + }, + { + "Variable": "gVarReal" + }, + { + "Datatype": "REAL" + }, + { + "Variable": "gVarLReal" + }, + { + "Datatype": "LREAL" + }, + { + "Variable": "gVarDate" + }, + { + "Datatype": "DATE" + }, + { + "Variable": "gVarDateAndTime" + }, + { + "Datatype": "DATE_AND_TIME" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + } + ], + "index": { + "global_variables": { + "inner_map": { + "gvarbool": [ + { + "name": "gVarBool", + "qualified_name": "gVarBool", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 8, + "offset": 24 + }, + "end": { + "line": 2, + "column": 16, + "offset": 32 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarsint": [ + { + "name": "gVarSInt", + "qualified_name": "gVarSInt", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "SINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 8, + "offset": 49 + }, + "end": { + "line": 4, + "column": 16, + "offset": 57 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarint": [ + { + "name": "gVarInt", + "qualified_name": "gVarInt", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 8, + "offset": 73 + }, + "end": { + "line": 5, + "column": 15, + "offset": 80 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvardint": [ + { + "name": "gVarDInt", + "qualified_name": "gVarDInt", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 8, + "offset": 95 + }, + "end": { + "line": 6, + "column": 16, + "offset": 103 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarlint": [ + { + "name": "gVarLInt", + "qualified_name": "gVarLInt", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 8, + "offset": 119 + }, + "end": { + "line": 7, + "column": 16, + "offset": 127 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarbyte": [ + { + "name": "gVarByte", + "qualified_name": "gVarByte", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BYTE", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 144 + }, + "end": { + "line": 9, + "column": 16, + "offset": 152 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarword": [ + { + "name": "gVarWord", + "qualified_name": "gVarWord", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "WORD", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 168 + }, + "end": { + "line": 10, + "column": 16, + "offset": 176 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvardword": [ + { + "name": "gVarDWord", + "qualified_name": "gVarDWord", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DWORD", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 192 + }, + "end": { + "line": 11, + "column": 17, + "offset": 201 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarlword": [ + { + "name": "gVarLWord", + "qualified_name": "gVarLWord", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 218 + }, + "end": { + "line": 12, + "column": 17, + "offset": 227 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarreal": [ + { + "name": "gVarReal", + "qualified_name": "gVarReal", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "REAL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 8, + "offset": 245 + }, + "end": { + "line": 14, + "column": 16, + "offset": 253 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarlreal": [ + { + "name": "gVarLReal", + "qualified_name": "gVarLReal", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LREAL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 269 + }, + "end": { + "line": 15, + "column": 17, + "offset": 278 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvardate": [ + { + "name": "gVarDate", + "qualified_name": "gVarDate", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DATE", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 296 + }, + "end": { + "line": 17, + "column": 16, + "offset": 304 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvardateandtime": [ + { + "name": "gVarDateAndTime", + "qualified_name": "gVarDateAndTime", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DATE_AND_TIME", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 8, + "offset": 320 + }, + "end": { + "line": 18, + "column": 23, + "offset": 335 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ] + } + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": { + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "annotations": { + "annotation_map": { + "type_map": {}, + "type_hint_map": {}, + "generic_nature_map": {}, + "hidden_function_calls": {}, + "new_index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": {} + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": {}, + "type_index": { + "types": { + "inner_map": {} + }, + "pou_types": { + "inner_map": {} + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + } + }, + "bool_id": 77, + "bool_annotation": { + "Value": { + "resulting_type": "BOOL" + } + } + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_1_global_primitives_compilation_units.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_1_global_primitives_compilation_units.snap new file mode 100644 index 0000000000..4c50e7948a --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_1_global_primitives_compilation_units.snap @@ -0,0 +1,698 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +[ + { + "global_vars": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "gVarBool", + "data_type_declaration": { + "Reference": { + "referenced_type": "BOOL", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 18, + "offset": 34 + }, + "end": { + "line": 2, + "column": 22, + "offset": 38 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 8, + "offset": 24 + }, + "end": { + "line": 2, + "column": 16, + "offset": 32 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarSInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "SINT", + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 18, + "offset": 59 + }, + "end": { + "line": 4, + "column": 22, + "offset": 63 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 8, + "offset": 49 + }, + "end": { + "line": 4, + "column": 16, + "offset": 57 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 17, + "offset": 82 + }, + "end": { + "line": 5, + "column": 20, + "offset": 85 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 8, + "offset": 73 + }, + "end": { + "line": 5, + "column": 15, + "offset": 80 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 18, + "offset": 105 + }, + "end": { + "line": 6, + "column": 22, + "offset": 109 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 8, + "offset": 95 + }, + "end": { + "line": 6, + "column": 16, + "offset": 103 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarLInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "LINT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 18, + "offset": 129 + }, + "end": { + "line": 7, + "column": 22, + "offset": 133 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 8, + "offset": 119 + }, + "end": { + "line": 7, + "column": 16, + "offset": 127 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarByte", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 18, + "offset": 154 + }, + "end": { + "line": 9, + "column": 22, + "offset": 158 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 144 + }, + "end": { + "line": 9, + "column": 16, + "offset": 152 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarWord", + "data_type_declaration": { + "Reference": { + "referenced_type": "WORD", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 18, + "offset": 178 + }, + "end": { + "line": 10, + "column": 22, + "offset": 182 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 168 + }, + "end": { + "line": 10, + "column": 16, + "offset": 176 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDWord", + "data_type_declaration": { + "Reference": { + "referenced_type": "DWORD", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 19, + "offset": 203 + }, + "end": { + "line": 11, + "column": 24, + "offset": 208 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 192 + }, + "end": { + "line": 11, + "column": 17, + "offset": 201 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarLWord", + "data_type_declaration": { + "Reference": { + "referenced_type": "LWORD", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 19, + "offset": 229 + }, + "end": { + "line": 12, + "column": 24, + "offset": 234 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 218 + }, + "end": { + "line": 12, + "column": 17, + "offset": 227 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarReal", + "data_type_declaration": { + "Reference": { + "referenced_type": "REAL", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 18, + "offset": 255 + }, + "end": { + "line": 14, + "column": 22, + "offset": 259 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 8, + "offset": 245 + }, + "end": { + "line": 14, + "column": 16, + "offset": 253 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarLReal", + "data_type_declaration": { + "Reference": { + "referenced_type": "LREAL", + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 19, + "offset": 280 + }, + "end": { + "line": 15, + "column": 24, + "offset": 285 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 269 + }, + "end": { + "line": 15, + "column": 17, + "offset": 278 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 18, + "offset": 306 + }, + "end": { + "line": 17, + "column": 22, + "offset": 310 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 296 + }, + "end": { + "line": 17, + "column": 16, + "offset": 304 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDateAndTime", + "data_type_declaration": { + "Reference": { + "referenced_type": "DATE_AND_TIME", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 337 + }, + "end": { + "line": 18, + "column": 38, + "offset": 350 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 8, + "offset": 320 + }, + "end": { + "line": 18, + "column": 23, + "offset": 335 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 1, + "column": 14, + "offset": 15 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [], + "file": { + "File": "global_primitives.pli" + } + } +] diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_1_global_primitives_indexed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_1_global_primitives_indexed_content.snap new file mode 100644 index 0000000000..47b85b77db --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_1_global_primitives_indexed_content.snap @@ -0,0 +1,5891 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "indexed_project": { + "project": { + "units": [ + { + "global_vars": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "gVarBool", + "data_type_declaration": { + "Reference": { + "referenced_type": "BOOL", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 18, + "offset": 34 + }, + "end": { + "line": 2, + "column": 22, + "offset": 38 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 8, + "offset": 24 + }, + "end": { + "line": 2, + "column": 16, + "offset": 32 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarSInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "SINT", + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 18, + "offset": 59 + }, + "end": { + "line": 4, + "column": 22, + "offset": 63 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 8, + "offset": 49 + }, + "end": { + "line": 4, + "column": 16, + "offset": 57 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 17, + "offset": 82 + }, + "end": { + "line": 5, + "column": 20, + "offset": 85 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 8, + "offset": 73 + }, + "end": { + "line": 5, + "column": 15, + "offset": 80 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 18, + "offset": 105 + }, + "end": { + "line": 6, + "column": 22, + "offset": 109 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 8, + "offset": 95 + }, + "end": { + "line": 6, + "column": 16, + "offset": 103 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarLInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "LINT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 18, + "offset": 129 + }, + "end": { + "line": 7, + "column": 22, + "offset": 133 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 8, + "offset": 119 + }, + "end": { + "line": 7, + "column": 16, + "offset": 127 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarByte", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 18, + "offset": 154 + }, + "end": { + "line": 9, + "column": 22, + "offset": 158 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 144 + }, + "end": { + "line": 9, + "column": 16, + "offset": 152 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarWord", + "data_type_declaration": { + "Reference": { + "referenced_type": "WORD", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 18, + "offset": 178 + }, + "end": { + "line": 10, + "column": 22, + "offset": 182 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 168 + }, + "end": { + "line": 10, + "column": 16, + "offset": 176 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDWord", + "data_type_declaration": { + "Reference": { + "referenced_type": "DWORD", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 19, + "offset": 203 + }, + "end": { + "line": 11, + "column": 24, + "offset": 208 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 192 + }, + "end": { + "line": 11, + "column": 17, + "offset": 201 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarLWord", + "data_type_declaration": { + "Reference": { + "referenced_type": "LWORD", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 19, + "offset": 229 + }, + "end": { + "line": 12, + "column": 24, + "offset": 234 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 218 + }, + "end": { + "line": 12, + "column": 17, + "offset": 227 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarReal", + "data_type_declaration": { + "Reference": { + "referenced_type": "REAL", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 18, + "offset": 255 + }, + "end": { + "line": 14, + "column": 22, + "offset": 259 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 8, + "offset": 245 + }, + "end": { + "line": 14, + "column": 16, + "offset": 253 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarLReal", + "data_type_declaration": { + "Reference": { + "referenced_type": "LREAL", + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 19, + "offset": 280 + }, + "end": { + "line": 15, + "column": 24, + "offset": 285 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 269 + }, + "end": { + "line": 15, + "column": 17, + "offset": 278 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 18, + "offset": 306 + }, + "end": { + "line": 17, + "column": 22, + "offset": 310 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 296 + }, + "end": { + "line": 17, + "column": 16, + "offset": 304 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDateAndTime", + "data_type_declaration": { + "Reference": { + "referenced_type": "DATE_AND_TIME", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 337 + }, + "end": { + "line": 18, + "column": 38, + "offset": 350 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 8, + "offset": 320 + }, + "end": { + "line": 18, + "column": 23, + "offset": 335 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 1, + "column": 14, + "offset": 15 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [], + "file": { + "File": "global_primitives.pli" + } + } + ] + }, + "index": { + "global_variables": { + "inner_map": { + "gvarbool": [ + { + "name": "gVarBool", + "qualified_name": "gVarBool", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 8, + "offset": 24 + }, + "end": { + "line": 2, + "column": 16, + "offset": 32 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarsint": [ + { + "name": "gVarSInt", + "qualified_name": "gVarSInt", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "SINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 8, + "offset": 49 + }, + "end": { + "line": 4, + "column": 16, + "offset": 57 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarint": [ + { + "name": "gVarInt", + "qualified_name": "gVarInt", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 8, + "offset": 73 + }, + "end": { + "line": 5, + "column": 15, + "offset": 80 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvardint": [ + { + "name": "gVarDInt", + "qualified_name": "gVarDInt", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 8, + "offset": 95 + }, + "end": { + "line": 6, + "column": 16, + "offset": 103 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarlint": [ + { + "name": "gVarLInt", + "qualified_name": "gVarLInt", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 8, + "offset": 119 + }, + "end": { + "line": 7, + "column": 16, + "offset": 127 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarbyte": [ + { + "name": "gVarByte", + "qualified_name": "gVarByte", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BYTE", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 144 + }, + "end": { + "line": 9, + "column": 16, + "offset": 152 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarword": [ + { + "name": "gVarWord", + "qualified_name": "gVarWord", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "WORD", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 168 + }, + "end": { + "line": 10, + "column": 16, + "offset": 176 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvardword": [ + { + "name": "gVarDWord", + "qualified_name": "gVarDWord", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DWORD", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 192 + }, + "end": { + "line": 11, + "column": 17, + "offset": 201 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarlword": [ + { + "name": "gVarLWord", + "qualified_name": "gVarLWord", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 218 + }, + "end": { + "line": 12, + "column": 17, + "offset": 227 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarreal": [ + { + "name": "gVarReal", + "qualified_name": "gVarReal", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "REAL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 8, + "offset": 245 + }, + "end": { + "line": 14, + "column": 16, + "offset": 253 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvarlreal": [ + { + "name": "gVarLReal", + "qualified_name": "gVarLReal", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LREAL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 269 + }, + "end": { + "line": 15, + "column": 17, + "offset": 278 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvardate": [ + { + "name": "gVarDate", + "qualified_name": "gVarDate", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DATE", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 296 + }, + "end": { + "line": 17, + "column": 16, + "offset": 304 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ], + "gvardateandtime": [ + { + "name": "gVarDateAndTime", + "qualified_name": "gVarDateAndTime", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DATE_AND_TIME", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 8, + "offset": 320 + }, + "end": { + "line": 18, + "column": 23, + "offset": 335 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + }, + "varargs": null + } + ] + } + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": { + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "unresolvables": [] + }, + "context": { + "sources": { + "global_primitives.pli": { + "source": "\n VAR_GLOBAL\n gVarBool: BOOL;\n\n gVarSInt: SINT;\n gVarInt: INT;\n gVarDInt: DINT;\n gVarLInt: LINT;\n\n gVarByte: BYTE;\n gVarWord: WORD;\n gVarDWord: DWORD;\n gVarLWord: LWORD;\n\n gVarReal: REAL;\n gVarLReal: LREAL;\n\n gVarDate: DATE;\n gVarDateAndTime: DATE_AND_TIME;\n END_VAR\n ", + "path": "global_primitives.pli" + } + }, + "provider": { + "current_id": 55 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_1_global_primitives_parsed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_1_global_primitives_parsed_content.snap new file mode 100644 index 0000000000..2bf888f8f5 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_1_global_primitives_parsed_content.snap @@ -0,0 +1,686 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "parsed_project": { + "units": [ + { + "global_vars": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "gVarBool", + "data_type_declaration": { + "Reference": { + "referenced_type": "BOOL", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 18, + "offset": 34 + }, + "end": { + "line": 2, + "column": 22, + "offset": 38 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 8, + "offset": 24 + }, + "end": { + "line": 2, + "column": 16, + "offset": 32 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarSInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "SINT", + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 18, + "offset": 59 + }, + "end": { + "line": 4, + "column": 22, + "offset": 63 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 8, + "offset": 49 + }, + "end": { + "line": 4, + "column": 16, + "offset": 57 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 17, + "offset": 82 + }, + "end": { + "line": 5, + "column": 20, + "offset": 85 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 8, + "offset": 73 + }, + "end": { + "line": 5, + "column": 15, + "offset": 80 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 18, + "offset": 105 + }, + "end": { + "line": 6, + "column": 22, + "offset": 109 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 8, + "offset": 95 + }, + "end": { + "line": 6, + "column": 16, + "offset": 103 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarLInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "LINT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 18, + "offset": 129 + }, + "end": { + "line": 7, + "column": 22, + "offset": 133 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 8, + "offset": 119 + }, + "end": { + "line": 7, + "column": 16, + "offset": 127 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarByte", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 18, + "offset": 154 + }, + "end": { + "line": 9, + "column": 22, + "offset": 158 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 144 + }, + "end": { + "line": 9, + "column": 16, + "offset": 152 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarWord", + "data_type_declaration": { + "Reference": { + "referenced_type": "WORD", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 18, + "offset": 178 + }, + "end": { + "line": 10, + "column": 22, + "offset": 182 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 168 + }, + "end": { + "line": 10, + "column": 16, + "offset": 176 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDWord", + "data_type_declaration": { + "Reference": { + "referenced_type": "DWORD", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 19, + "offset": 203 + }, + "end": { + "line": 11, + "column": 24, + "offset": 208 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 192 + }, + "end": { + "line": 11, + "column": 17, + "offset": 201 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarLWord", + "data_type_declaration": { + "Reference": { + "referenced_type": "LWORD", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 19, + "offset": 229 + }, + "end": { + "line": 12, + "column": 24, + "offset": 234 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 218 + }, + "end": { + "line": 12, + "column": 17, + "offset": 227 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarReal", + "data_type_declaration": { + "Reference": { + "referenced_type": "REAL", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 18, + "offset": 255 + }, + "end": { + "line": 14, + "column": 22, + "offset": 259 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 8, + "offset": 245 + }, + "end": { + "line": 14, + "column": 16, + "offset": 253 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarLReal", + "data_type_declaration": { + "Reference": { + "referenced_type": "LREAL", + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 19, + "offset": 280 + }, + "end": { + "line": 15, + "column": 24, + "offset": 285 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 269 + }, + "end": { + "line": 15, + "column": 17, + "offset": 278 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 18, + "offset": 306 + }, + "end": { + "line": 17, + "column": 22, + "offset": 310 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 296 + }, + "end": { + "line": 17, + "column": 16, + "offset": 304 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + }, + { + "name": "gVarDateAndTime", + "data_type_declaration": { + "Reference": { + "referenced_type": "DATE_AND_TIME", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 337 + }, + "end": { + "line": 18, + "column": 38, + "offset": 350 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 8, + "offset": 320 + }, + "end": { + "line": 18, + "column": 23, + "offset": 335 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 1, + "column": 14, + "offset": 15 + } + } + }, + "file": { + "File": "global_primitives.pli" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [], + "file": { + "File": "global_primitives.pli" + } + } + ] + }, + "context": { + "sources": { + "global_primitives.pli": { + "source": "\n VAR_GLOBAL\n gVarBool: BOOL;\n\n gVarSInt: SINT;\n gVarInt: INT;\n gVarDInt: DINT;\n gVarLInt: LINT;\n\n gVarByte: BYTE;\n gVarWord: WORD;\n gVarDWord: DWORD;\n gVarLWord: LWORD;\n\n gVarReal: REAL;\n gVarLReal: LREAL;\n\n gVarDate: DATE;\n gVarDateAndTime: DATE_AND_TIME;\n END_VAR\n ", + "path": "global_primitives.pli" + } + }, + "provider": { + "current_id": 1 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_2_global_complex_types_annotated_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_2_global_complex_types_annotated_content.snap new file mode 100644 index 0000000000..c728dae034 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_2_global_complex_types_annotated_content.snap @@ -0,0 +1,6624 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "units": [ + { + "unit": { + "global_vars": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "gVarString", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarString", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 20, + "offset": 36 + }, + "end": { + "line": 2, + "column": 31, + "offset": 47 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 8, + "offset": 24 + }, + "end": { + "line": 2, + "column": 18, + "offset": 34 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarWString", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarWString", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 70 + }, + "end": { + "line": 3, + "column": 34, + "offset": 83 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 57 + }, + "end": { + "line": 3, + "column": 19, + "offset": 68 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarIntArray", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarIntArray", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 22, + "offset": 108 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 8, + "offset": 94 + }, + "end": { + "line": 5, + "column": 20, + "offset": 106 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarRefToInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarRefToInt", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 152 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 8, + "offset": 138 + }, + "end": { + "line": 7, + "column": 20, + "offset": 150 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarPointerToInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarPointerToInt", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 26, + "offset": 196 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 8, + "offset": 178 + }, + "end": { + "line": 8, + "column": 24, + "offset": 194 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarRefToDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarRefToDate", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 23, + "offset": 231 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 216 + }, + "end": { + "line": 9, + "column": 21, + "offset": 229 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarPointerToDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarPointerToDate", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 277 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 258 + }, + "end": { + "line": 10, + "column": 25, + "offset": 275 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarIntWithRange", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarIntWithRange", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 26, + "offset": 317 + }, + "end": { + "line": 12, + "column": 37, + "offset": 328 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 299 + }, + "end": { + "line": 12, + "column": 24, + "offset": 315 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 1, + "column": 14, + "offset": 15 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StringType": { + "name": "__global_gVarString", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 255 + } + }, + "id": 1, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 27, + "offset": 43 + }, + "end": { + "line": 2, + "column": 30, + "offset": 46 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 20, + "offset": 36 + }, + "end": { + "line": 2, + "column": 31, + "offset": 47 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__global_gVarWString", + "is_wide": true, + "size": { + "stmt": { + "Literal": { + "Integer": 6000 + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 29, + "offset": 78 + }, + "end": { + "line": 3, + "column": 33, + "offset": 82 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 70 + }, + "end": { + "line": 3, + "column": 34, + "offset": 83 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "__global_gVarIntArray", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 28, + "offset": 114 + }, + "end": { + "line": 5, + "column": 29, + "offset": 115 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 11 + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 31, + "offset": 117 + }, + "end": { + "line": 5, + "column": 33, + "offset": 119 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 5, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 28, + "offset": 114 + }, + "end": { + "line": 5, + "column": 33, + "offset": 119 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 38, + "offset": 124 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 22, + "offset": 108 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__global_gVarRefToInt", + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 35, + "offset": 165 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 152 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__global_gVarPointerToInt", + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 33, + "offset": 203 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 26, + "offset": 196 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__global_gVarRefToDate", + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 36, + "offset": 244 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 23, + "offset": 231 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__global_gVarPointerToDate", + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 34, + "offset": 284 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 277 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "SubRangeType": { + "name": "__global_gVarIntWithRange", + "referenced_type": "INT", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 6, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 30, + "offset": 321 + }, + "end": { + "line": 12, + "column": 31, + "offset": 322 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 100 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 33, + "offset": 324 + }, + "end": { + "line": 12, + "column": 36, + "offset": 327 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 8, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 30, + "offset": 321 + }, + "end": { + "line": 12, + "column": 36, + "offset": 327 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 26, + "offset": 317 + }, + "end": { + "line": 12, + "column": 37, + "offset": 328 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "global_complex_types.pli" + } + }, + "dependencies": [ + { + "Variable": "gVarString" + }, + { + "Datatype": "__global_gVarString" + }, + { + "Datatype": "STRING" + }, + { + "Variable": "gVarWString" + }, + { + "Datatype": "__global_gVarWString" + }, + { + "Datatype": "WSTRING" + }, + { + "Variable": "gVarIntArray" + }, + { + "Datatype": "__global_gVarIntArray" + }, + { + "Datatype": "INT" + }, + { + "Variable": "gVarRefToInt" + }, + { + "Datatype": "__global_gVarRefToInt" + }, + { + "Variable": "gVarPointerToInt" + }, + { + "Datatype": "__global_gVarPointerToInt" + }, + { + "Variable": "gVarRefToDate" + }, + { + "Datatype": "__global_gVarRefToDate" + }, + { + "Datatype": "DATE" + }, + { + "Variable": "gVarPointerToDate" + }, + { + "Datatype": "__global_gVarPointerToDate" + }, + { + "Variable": "gVarIntWithRange" + }, + { + "Datatype": "__global_gVarIntWithRange" + }, + { + "Datatype": "DINT" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + } + ], + "index": { + "global_variables": { + "inner_map": { + "gvarstring": [ + { + "name": "gVarString", + "qualified_name": "gVarString", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarString", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 8, + "offset": 24 + }, + "end": { + "line": 2, + "column": 18, + "offset": 34 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarwstring": [ + { + "name": "gVarWString", + "qualified_name": "gVarWString", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarWString", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 57 + }, + "end": { + "line": 3, + "column": 19, + "offset": 68 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarintarray": [ + { + "name": "gVarIntArray", + "qualified_name": "gVarIntArray", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarIntArray", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 8, + "offset": 94 + }, + "end": { + "line": 5, + "column": 20, + "offset": 106 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarreftoint": [ + { + "name": "gVarRefToInt", + "qualified_name": "gVarRefToInt", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarRefToInt", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 8, + "offset": 138 + }, + "end": { + "line": 7, + "column": 20, + "offset": 150 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarpointertoint": [ + { + "name": "gVarPointerToInt", + "qualified_name": "gVarPointerToInt", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarPointerToInt", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 8, + "offset": 178 + }, + "end": { + "line": 8, + "column": 24, + "offset": 194 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarreftodate": [ + { + "name": "gVarRefToDate", + "qualified_name": "gVarRefToDate", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarRefToDate", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 216 + }, + "end": { + "line": 9, + "column": 21, + "offset": 229 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarpointertodate": [ + { + "name": "gVarPointerToDate", + "qualified_name": "gVarPointerToDate", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarPointerToDate", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 258 + }, + "end": { + "line": 10, + "column": 25, + "offset": 275 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarintwithrange": [ + { + "name": "gVarIntWithRange", + "qualified_name": "gVarIntWithRange", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarIntWithRange", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 299 + }, + "end": { + "line": 12, + "column": 24, + "offset": 315 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": { + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "__global_gvarstring": [ + { + "name": "__global_gVarString", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 256 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 20, + "offset": 36 + }, + "end": { + "line": 2, + "column": 31, + "offset": 47 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarwstring": [ + { + "name": "__global_gVarWString", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 6001 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 70 + }, + "end": { + "line": 3, + "column": 34, + "offset": 83 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarintarray": [ + { + "name": "__global_gVarIntArray", + "initial_value": null, + "information": { + "Array": { + "name": "__global_gVarIntArray", + "inner_type_name": "INT", + "dimensions": [ + { + "start_offset": { + "ConstExpression": [ + 0, + 0 + ] + }, + "end_offset": { + "ConstExpression": [ + 1, + 0 + ] + } + } + ] + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 22, + "offset": 108 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarreftoint": [ + { + "name": "__global_gVarRefToInt", + "initial_value": null, + "information": { + "Pointer": { + "name": "__global_gVarRefToInt", + "inner_type_name": "INT", + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 152 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarpointertoint": [ + { + "name": "__global_gVarPointerToInt", + "initial_value": null, + "information": { + "Pointer": { + "name": "__global_gVarPointerToInt", + "inner_type_name": "INT", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 26, + "offset": 196 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarreftodate": [ + { + "name": "__global_gVarRefToDate", + "initial_value": null, + "information": { + "Pointer": { + "name": "__global_gVarRefToDate", + "inner_type_name": "DATE", + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 23, + "offset": 231 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarpointertodate": [ + { + "name": "__global_gVarPointerToDate", + "initial_value": null, + "information": { + "Pointer": { + "name": "__global_gVarPointerToDate", + "inner_type_name": "DATE", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 277 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarintwithrange": [ + { + "name": "__global_gVarIntWithRange", + "initial_value": null, + "information": { + "SubRange": { + "name": "__global_gVarIntWithRange", + "referenced_type": "INT", + "sub_range": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 6, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 30, + "offset": 321 + }, + "end": { + "line": 12, + "column": 31, + "offset": 322 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 100 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 33, + "offset": 324 + }, + "end": { + "line": 12, + "column": 36, + "offset": 327 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 26, + "offset": 317 + }, + "end": { + "line": 12, + "column": 37, + "offset": 328 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 28, + "offset": 114 + }, + "end": { + "line": 5, + "column": 29, + "offset": 115 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 11 + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 31, + "offset": 117 + }, + "end": { + "line": 5, + "column": 33, + "offset": 119 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "annotations": { + "annotation_map": { + "type_map": { + "6": { + "Value": { + "resulting_type": "DINT" + } + }, + "7": { + "Value": { + "resulting_type": "DINT" + } + } + }, + "type_hint_map": { + "6": { + "Value": { + "resulting_type": "INT" + } + }, + "7": { + "Value": { + "resulting_type": "INT" + } + } + }, + "generic_nature_map": {}, + "hidden_function_calls": {}, + "new_index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": {} + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": {}, + "type_index": { + "types": { + "inner_map": {} + }, + "pou_types": { + "inner_map": {} + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + } + }, + "bool_id": 85, + "bool_annotation": { + "Value": { + "resulting_type": "BOOL" + } + } + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_2_global_complex_types_compilation_units.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_2_global_complex_types_compilation_units.snap new file mode 100644 index 0000000000..b74ad1697e --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_2_global_complex_types_compilation_units.snap @@ -0,0 +1,1041 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +[ + { + "global_vars": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "gVarString", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarString", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 20, + "offset": 36 + }, + "end": { + "line": 2, + "column": 31, + "offset": 47 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 8, + "offset": 24 + }, + "end": { + "line": 2, + "column": 18, + "offset": 34 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarWString", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarWString", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 70 + }, + "end": { + "line": 3, + "column": 34, + "offset": 83 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 57 + }, + "end": { + "line": 3, + "column": 19, + "offset": 68 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarIntArray", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarIntArray", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 22, + "offset": 108 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 8, + "offset": 94 + }, + "end": { + "line": 5, + "column": 20, + "offset": 106 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarRefToInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarRefToInt", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 152 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 8, + "offset": 138 + }, + "end": { + "line": 7, + "column": 20, + "offset": 150 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarPointerToInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarPointerToInt", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 26, + "offset": 196 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 8, + "offset": 178 + }, + "end": { + "line": 8, + "column": 24, + "offset": 194 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarRefToDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarRefToDate", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 23, + "offset": 231 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 216 + }, + "end": { + "line": 9, + "column": 21, + "offset": 229 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarPointerToDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarPointerToDate", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 277 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 258 + }, + "end": { + "line": 10, + "column": 25, + "offset": 275 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarIntWithRange", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarIntWithRange", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 26, + "offset": 317 + }, + "end": { + "line": 12, + "column": 37, + "offset": 328 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 299 + }, + "end": { + "line": 12, + "column": 24, + "offset": 315 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 1, + "column": 14, + "offset": 15 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StringType": { + "name": "__global_gVarString", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 255 + } + }, + "id": 1, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 27, + "offset": 43 + }, + "end": { + "line": 2, + "column": 30, + "offset": 46 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 20, + "offset": 36 + }, + "end": { + "line": 2, + "column": 31, + "offset": 47 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__global_gVarWString", + "is_wide": true, + "size": { + "stmt": { + "Literal": { + "Integer": 6000 + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 29, + "offset": 78 + }, + "end": { + "line": 3, + "column": 33, + "offset": 82 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 70 + }, + "end": { + "line": 3, + "column": 34, + "offset": 83 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "__global_gVarIntArray", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 28, + "offset": 114 + }, + "end": { + "line": 5, + "column": 29, + "offset": 115 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 11 + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 31, + "offset": 117 + }, + "end": { + "line": 5, + "column": 33, + "offset": 119 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 5, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 28, + "offset": 114 + }, + "end": { + "line": 5, + "column": 33, + "offset": 119 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 38, + "offset": 124 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 22, + "offset": 108 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__global_gVarRefToInt", + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 35, + "offset": 165 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 152 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__global_gVarPointerToInt", + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 33, + "offset": 203 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 26, + "offset": 196 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__global_gVarRefToDate", + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 36, + "offset": 244 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 23, + "offset": 231 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__global_gVarPointerToDate", + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 34, + "offset": 284 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 277 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "SubRangeType": { + "name": "__global_gVarIntWithRange", + "referenced_type": "INT", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 6, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 30, + "offset": 321 + }, + "end": { + "line": 12, + "column": 31, + "offset": 322 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 100 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 33, + "offset": 324 + }, + "end": { + "line": 12, + "column": 36, + "offset": 327 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 8, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 30, + "offset": 321 + }, + "end": { + "line": 12, + "column": 36, + "offset": 327 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 26, + "offset": 317 + }, + "end": { + "line": 12, + "column": 37, + "offset": 328 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "global_complex_types.pli" + } + } +] diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_2_global_complex_types_indexed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_2_global_complex_types_indexed_content.snap new file mode 100644 index 0000000000..07ed029c96 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_2_global_complex_types_indexed_content.snap @@ -0,0 +1,6470 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "indexed_project": { + "project": { + "units": [ + { + "global_vars": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "gVarString", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarString", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 20, + "offset": 36 + }, + "end": { + "line": 2, + "column": 31, + "offset": 47 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 8, + "offset": 24 + }, + "end": { + "line": 2, + "column": 18, + "offset": 34 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarWString", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarWString", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 70 + }, + "end": { + "line": 3, + "column": 34, + "offset": 83 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 57 + }, + "end": { + "line": 3, + "column": 19, + "offset": 68 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarIntArray", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarIntArray", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 22, + "offset": 108 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 8, + "offset": 94 + }, + "end": { + "line": 5, + "column": 20, + "offset": 106 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarRefToInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarRefToInt", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 152 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 8, + "offset": 138 + }, + "end": { + "line": 7, + "column": 20, + "offset": 150 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarPointerToInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarPointerToInt", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 26, + "offset": 196 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 8, + "offset": 178 + }, + "end": { + "line": 8, + "column": 24, + "offset": 194 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarRefToDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarRefToDate", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 23, + "offset": 231 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 216 + }, + "end": { + "line": 9, + "column": 21, + "offset": 229 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarPointerToDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarPointerToDate", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 277 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 258 + }, + "end": { + "line": 10, + "column": 25, + "offset": 275 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarIntWithRange", + "data_type_declaration": { + "Reference": { + "referenced_type": "__global_gVarIntWithRange", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 26, + "offset": 317 + }, + "end": { + "line": 12, + "column": 37, + "offset": 328 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 299 + }, + "end": { + "line": 12, + "column": 24, + "offset": 315 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 1, + "column": 14, + "offset": 15 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StringType": { + "name": "__global_gVarString", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 255 + } + }, + "id": 1, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 27, + "offset": 43 + }, + "end": { + "line": 2, + "column": 30, + "offset": 46 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 20, + "offset": 36 + }, + "end": { + "line": 2, + "column": 31, + "offset": 47 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__global_gVarWString", + "is_wide": true, + "size": { + "stmt": { + "Literal": { + "Integer": 6000 + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 29, + "offset": 78 + }, + "end": { + "line": 3, + "column": 33, + "offset": 82 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 70 + }, + "end": { + "line": 3, + "column": 34, + "offset": 83 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "__global_gVarIntArray", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 28, + "offset": 114 + }, + "end": { + "line": 5, + "column": 29, + "offset": 115 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 11 + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 31, + "offset": 117 + }, + "end": { + "line": 5, + "column": 33, + "offset": 119 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 5, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 28, + "offset": 114 + }, + "end": { + "line": 5, + "column": 33, + "offset": 119 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 38, + "offset": 124 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 22, + "offset": 108 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__global_gVarRefToInt", + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 35, + "offset": 165 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 152 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__global_gVarPointerToInt", + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 33, + "offset": 203 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 26, + "offset": 196 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__global_gVarRefToDate", + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 36, + "offset": 244 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 23, + "offset": 231 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__global_gVarPointerToDate", + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 34, + "offset": 284 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 277 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "SubRangeType": { + "name": "__global_gVarIntWithRange", + "referenced_type": "INT", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 6, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 30, + "offset": 321 + }, + "end": { + "line": 12, + "column": 31, + "offset": 322 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 100 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 33, + "offset": 324 + }, + "end": { + "line": 12, + "column": 36, + "offset": 327 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 8, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 30, + "offset": 321 + }, + "end": { + "line": 12, + "column": 36, + "offset": 327 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 26, + "offset": 317 + }, + "end": { + "line": 12, + "column": 37, + "offset": 328 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "global_complex_types.pli" + } + } + ] + }, + "index": { + "global_variables": { + "inner_map": { + "gvarstring": [ + { + "name": "gVarString", + "qualified_name": "gVarString", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarString", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 8, + "offset": 24 + }, + "end": { + "line": 2, + "column": 18, + "offset": 34 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarwstring": [ + { + "name": "gVarWString", + "qualified_name": "gVarWString", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarWString", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 57 + }, + "end": { + "line": 3, + "column": 19, + "offset": 68 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarintarray": [ + { + "name": "gVarIntArray", + "qualified_name": "gVarIntArray", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarIntArray", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 8, + "offset": 94 + }, + "end": { + "line": 5, + "column": 20, + "offset": 106 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarreftoint": [ + { + "name": "gVarRefToInt", + "qualified_name": "gVarRefToInt", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarRefToInt", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 8, + "offset": 138 + }, + "end": { + "line": 7, + "column": 20, + "offset": 150 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarpointertoint": [ + { + "name": "gVarPointerToInt", + "qualified_name": "gVarPointerToInt", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarPointerToInt", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 8, + "offset": 178 + }, + "end": { + "line": 8, + "column": 24, + "offset": 194 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarreftodate": [ + { + "name": "gVarRefToDate", + "qualified_name": "gVarRefToDate", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarRefToDate", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 216 + }, + "end": { + "line": 9, + "column": 21, + "offset": 229 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarpointertodate": [ + { + "name": "gVarPointerToDate", + "qualified_name": "gVarPointerToDate", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarPointerToDate", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 258 + }, + "end": { + "line": 10, + "column": 25, + "offset": 275 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ], + "gvarintwithrange": [ + { + "name": "gVarIntWithRange", + "qualified_name": "gVarIntWithRange", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__global_gVarIntWithRange", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 299 + }, + "end": { + "line": 12, + "column": 24, + "offset": 315 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": { + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "__global_gvarstring": [ + { + "name": "__global_gVarString", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 256 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 20, + "offset": 36 + }, + "end": { + "line": 2, + "column": 31, + "offset": 47 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarwstring": [ + { + "name": "__global_gVarWString", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 6001 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 70 + }, + "end": { + "line": 3, + "column": 34, + "offset": 83 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarintarray": [ + { + "name": "__global_gVarIntArray", + "initial_value": null, + "information": { + "Array": { + "name": "__global_gVarIntArray", + "inner_type_name": "INT", + "dimensions": [ + { + "start_offset": { + "ConstExpression": [ + 0, + 0 + ] + }, + "end_offset": { + "ConstExpression": [ + 1, + 0 + ] + } + } + ] + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 22, + "offset": 108 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarreftoint": [ + { + "name": "__global_gVarRefToInt", + "initial_value": null, + "information": { + "Pointer": { + "name": "__global_gVarRefToInt", + "inner_type_name": "INT", + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 152 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarpointertoint": [ + { + "name": "__global_gVarPointerToInt", + "initial_value": null, + "information": { + "Pointer": { + "name": "__global_gVarPointerToInt", + "inner_type_name": "INT", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 26, + "offset": 196 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarreftodate": [ + { + "name": "__global_gVarRefToDate", + "initial_value": null, + "information": { + "Pointer": { + "name": "__global_gVarRefToDate", + "inner_type_name": "DATE", + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 23, + "offset": 231 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarpointertodate": [ + { + "name": "__global_gVarPointerToDate", + "initial_value": null, + "information": { + "Pointer": { + "name": "__global_gVarPointerToDate", + "inner_type_name": "DATE", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 277 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__global_gvarintwithrange": [ + { + "name": "__global_gVarIntWithRange", + "initial_value": null, + "information": { + "SubRange": { + "name": "__global_gVarIntWithRange", + "referenced_type": "INT", + "sub_range": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 6, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 30, + "offset": 321 + }, + "end": { + "line": 12, + "column": 31, + "offset": 322 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 100 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 33, + "offset": 324 + }, + "end": { + "line": 12, + "column": 36, + "offset": 327 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 26, + "offset": 317 + }, + "end": { + "line": 12, + "column": 37, + "offset": 328 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 28, + "offset": 114 + }, + "end": { + "line": 5, + "column": 29, + "offset": 115 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 11 + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 31, + "offset": 117 + }, + "end": { + "line": 5, + "column": 33, + "offset": 119 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "unresolvables": [] + }, + "context": { + "sources": { + "global_complex_types.pli": { + "source": "\n VAR_GLOBAL\n gVarString: STRING[255];\n gVarWString: WSTRING[6000];\n\n gVarIntArray: ARRAY[0..11] OF INT;\n\n gVarRefToInt: REFERENCE TO INT;\n gVarPointerToInt: REF_TO INT;\n gVarRefToDate: REFERENCE TO DATE;\n gVarPointerToDate: REF_TO DATE;\n\n gVarIntWithRange: INT(0..100);\n END_VAR\n ", + "path": "global_complex_types.pli" + } + }, + "provider": { + "current_id": 63 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_2_global_complex_types_parsed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_2_global_complex_types_parsed_content.snap new file mode 100644 index 0000000000..6d8394e6e1 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_2_global_complex_types_parsed_content.snap @@ -0,0 +1,844 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "parsed_project": { + "units": [ + { + "global_vars": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "gVarString", + "data_type_declaration": { + "Definition": { + "data_type": { + "StringType": { + "name": null, + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 255 + } + }, + "id": 1, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 27, + "offset": 43 + }, + "end": { + "line": 2, + "column": 30, + "offset": 46 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 20, + "offset": 36 + }, + "end": { + "line": 2, + "column": 31, + "offset": 47 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 8, + "offset": 24 + }, + "end": { + "line": 2, + "column": 18, + "offset": 34 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarWString", + "data_type_declaration": { + "Definition": { + "data_type": { + "StringType": { + "name": null, + "is_wide": true, + "size": { + "stmt": { + "Literal": { + "Integer": 6000 + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 29, + "offset": 78 + }, + "end": { + "line": 3, + "column": 33, + "offset": 82 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 70 + }, + "end": { + "line": 3, + "column": 34, + "offset": 83 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 57 + }, + "end": { + "line": 3, + "column": 19, + "offset": 68 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarIntArray", + "data_type_declaration": { + "Definition": { + "data_type": { + "ArrayType": { + "name": null, + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 28, + "offset": 114 + }, + "end": { + "line": 5, + "column": 29, + "offset": 115 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 11 + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 31, + "offset": 117 + }, + "end": { + "line": 5, + "column": 33, + "offset": 119 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 5, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 28, + "offset": 114 + }, + "end": { + "line": 5, + "column": 33, + "offset": 119 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 38, + "offset": 124 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 22, + "offset": 108 + }, + "end": { + "line": 5, + "column": 41, + "offset": 127 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 8, + "offset": 94 + }, + "end": { + "line": 5, + "column": 20, + "offset": 106 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarRefToInt", + "data_type_declaration": { + "Definition": { + "data_type": { + "PointerType": { + "name": null, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 35, + "offset": 165 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 152 + }, + "end": { + "line": 7, + "column": 38, + "offset": 168 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 8, + "offset": 138 + }, + "end": { + "line": 7, + "column": 20, + "offset": 150 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarPointerToInt", + "data_type_declaration": { + "Definition": { + "data_type": { + "PointerType": { + "name": null, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 33, + "offset": 203 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 26, + "offset": 196 + }, + "end": { + "line": 8, + "column": 36, + "offset": 206 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 8, + "offset": 178 + }, + "end": { + "line": 8, + "column": 24, + "offset": 194 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarRefToDate", + "data_type_declaration": { + "Definition": { + "data_type": { + "PointerType": { + "name": null, + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 36, + "offset": 244 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 23, + "offset": 231 + }, + "end": { + "line": 9, + "column": 40, + "offset": 248 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 216 + }, + "end": { + "line": 9, + "column": 21, + "offset": 229 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarPointerToDate", + "data_type_declaration": { + "Definition": { + "data_type": { + "PointerType": { + "name": null, + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 34, + "offset": 284 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 277 + }, + "end": { + "line": 10, + "column": 38, + "offset": 288 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 258 + }, + "end": { + "line": 10, + "column": 25, + "offset": 275 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + }, + { + "name": "gVarIntWithRange", + "data_type_declaration": { + "Definition": { + "data_type": { + "SubRangeType": { + "name": null, + "referenced_type": "INT", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 6, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 30, + "offset": 321 + }, + "end": { + "line": 12, + "column": 31, + "offset": 322 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 100 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 33, + "offset": 324 + }, + "end": { + "line": 12, + "column": 36, + "offset": 327 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 8, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 30, + "offset": 321 + }, + "end": { + "line": 12, + "column": 36, + "offset": 327 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 26, + "offset": 317 + }, + "end": { + "line": 12, + "column": 37, + "offset": 328 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 299 + }, + "end": { + "line": 12, + "column": 24, + "offset": 315 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 1, + "column": 14, + "offset": 15 + } + } + }, + "file": { + "File": "global_complex_types.pli" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [], + "file": { + "File": "global_complex_types.pli" + } + } + ] + }, + "context": { + "sources": { + "global_complex_types.pli": { + "source": "\n VAR_GLOBAL\n gVarString: STRING[255];\n gVarWString: WSTRING[6000];\n\n gVarIntArray: ARRAY[0..11] OF INT;\n\n gVarRefToInt: REFERENCE TO INT;\n gVarPointerToInt: REF_TO INT;\n gVarRefToDate: REFERENCE TO DATE;\n gVarPointerToDate: REF_TO DATE;\n\n gVarIntWithRange: INT(0..100);\n END_VAR\n ", + "path": "global_complex_types.pli" + } + }, + "provider": { + "current_id": 9 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_3_enum_types_annotated_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_3_enum_types_annotated_content.snap new file mode 100644 index 0000000000..99874b25bf --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_3_enum_types_annotated_content.snap @@ -0,0 +1,6934 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "units": [ + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "SimpleEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "red" + }, + "id": 148, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 149, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 21, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 150, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "green" + }, + "id": 151, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 152, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "BinaryExpression": { + "operator": "Plus", + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Cast": { + "stmt": { + "Identifier": "red" + }, + "id": 25, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "SimpleEnumType" + }, + "id": 26, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 27, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 28, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 1 + } + }, + "id": 29, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 30, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 153, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "blue" + }, + "id": 154, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 155, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "BinaryExpression": { + "operator": "Plus", + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Cast": { + "stmt": { + "Identifier": "green" + }, + "id": 34, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "SimpleEnumType" + }, + "id": 35, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 36, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 37, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 1 + } + }, + "id": 38, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 39, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 156, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + ] + }, + "id": 157, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 23, + "offset": 24 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 158, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 159, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 10, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 22, + "offset": 158 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 160, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 161, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 162, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 22, + "offset": 184 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 163, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 164, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 165, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 22, + "offset": 210 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 166, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + ] + }, + "id": 167, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 116 + }, + "end": { + "line": 8, + "column": 24, + "offset": 131 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "enum_types.pli" + } + }, + "dependencies": [ + { + "Datatype": "SimpleEnumType" + }, + { + "Datatype": "DINT" + }, + { + "Variable": "SimpleEnumType.red" + }, + { + "Variable": "SimpleEnumType.green" + }, + { + "Variable": "SimpleEnumType.blue" + }, + { + "Datatype": "ComplexEnumType" + }, + { + "Variable": "ComplexEnumType.orange" + }, + { + "Variable": "ComplexEnumType.yellow" + }, + { + "Variable": "ComplexEnumType.purple" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + } + ], + "index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": { + "red": [ + { + "name": "red", + "qualified_name": "SimpleEnumType.red", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "SimpleEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ], + "green": [ + { + "name": "green", + "qualified_name": "SimpleEnumType.green", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "SimpleEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ], + "blue": [ + { + "name": "blue", + "qualified_name": "SimpleEnumType.blue", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "SimpleEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ], + "orange": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 3, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ], + "yellow": [ + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 4, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ], + "purple": [ + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 5, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "pous": { + "inner_map": { + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "simpleenumtype": [ + { + "name": "SimpleEnumType", + "initial_value": [ + 0, + 0 + ], + "information": { + "Enum": { + "name": "SimpleEnumType", + "referenced_type": "DINT", + "variants": [ + { + "name": "red", + "qualified_name": "SimpleEnumType.red", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "SimpleEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + }, + { + "name": "green", + "qualified_name": "SimpleEnumType.green", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "SimpleEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + }, + { + "name": "blue", + "qualified_name": "SimpleEnumType.blue", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "SimpleEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 23, + "offset": 24 + } + } + }, + "file": { + "File": "enum_types.pli" + } + } + } + ], + "complexenumtype": [ + { + "name": "ComplexEnumType", + "initial_value": [ + 3, + 0 + ], + "information": { + "Enum": { + "name": "ComplexEnumType", + "referenced_type": "DINT", + "variants": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 3, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + }, + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 4, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + }, + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 5, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 116 + }, + "end": { + "line": 8, + "column": 24, + "offset": 131 + } + } + }, + "file": { + "File": "enum_types.pli" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 21, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 1 + } + }, + "id": 30, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 2 + } + }, + "id": 39, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 10, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 22, + "offset": 158 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 22, + "offset": 184 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 22, + "offset": 210 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "annotations": { + "annotation_map": { + "type_map": { + "21": { + "Value": { + "resulting_type": "DINT" + } + }, + "149": { + "Variable": { + "resulting_type": "SimpleEnumType", + "qualified_name": "SimpleEnumType.red", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "148": { + "Variable": { + "resulting_type": "SimpleEnumType", + "qualified_name": "SimpleEnumType.red", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "27": { + "Type": { + "type_name": "SimpleEnumType" + } + }, + "26": { + "Type": { + "type_name": "SimpleEnumType" + } + }, + "25": { + "Variable": { + "resulting_type": "SimpleEnumType", + "qualified_name": "SimpleEnumType.red", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "28": { + "Value": { + "resulting_type": "SimpleEnumType" + } + }, + "29": { + "Value": { + "resulting_type": "DINT" + } + }, + "30": { + "Value": { + "resulting_type": "DINT" + } + }, + "152": { + "Variable": { + "resulting_type": "SimpleEnumType", + "qualified_name": "SimpleEnumType.green", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "151": { + "Variable": { + "resulting_type": "SimpleEnumType", + "qualified_name": "SimpleEnumType.green", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "36": { + "Type": { + "type_name": "SimpleEnumType" + } + }, + "35": { + "Type": { + "type_name": "SimpleEnumType" + } + }, + "34": { + "Variable": { + "resulting_type": "SimpleEnumType", + "qualified_name": "SimpleEnumType.green", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "37": { + "Value": { + "resulting_type": "SimpleEnumType" + } + }, + "38": { + "Value": { + "resulting_type": "DINT" + } + }, + "39": { + "Value": { + "resulting_type": "DINT" + } + }, + "155": { + "Variable": { + "resulting_type": "SimpleEnumType", + "qualified_name": "SimpleEnumType.blue", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "154": { + "Variable": { + "resulting_type": "SimpleEnumType", + "qualified_name": "SimpleEnumType.blue", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "10": { + "Value": { + "resulting_type": "DINT" + } + }, + "159": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.orange", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "158": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.orange", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "14": { + "Value": { + "resulting_type": "DINT" + } + }, + "162": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.yellow", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "161": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.yellow", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "18": { + "Value": { + "resulting_type": "DINT" + } + }, + "165": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.purple", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "164": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.purple", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + } + }, + "type_hint_map": { + "21": { + "Value": { + "resulting_type": "SimpleEnumType" + } + }, + "29": { + "Value": { + "resulting_type": "SimpleEnumType" + } + }, + "30": { + "Value": { + "resulting_type": "SimpleEnumType" + } + }, + "38": { + "Value": { + "resulting_type": "SimpleEnumType" + } + }, + "39": { + "Value": { + "resulting_type": "SimpleEnumType" + } + }, + "10": { + "Value": { + "resulting_type": "ComplexEnumType" + } + }, + "14": { + "Value": { + "resulting_type": "ComplexEnumType" + } + }, + "18": { + "Value": { + "resulting_type": "ComplexEnumType" + } + } + }, + "generic_nature_map": {}, + "hidden_function_calls": {}, + "new_index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": {} + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": {}, + "type_index": { + "types": { + "inner_map": {} + }, + "pou_types": { + "inner_map": {} + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + } + }, + "bool_id": 190, + "bool_annotation": { + "Value": { + "resulting_type": "BOOL" + } + } + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_3_enum_types_compilation_units.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_3_enum_types_compilation_units.snap new file mode 100644 index 0000000000..305aa6be3f --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_3_enum_types_compilation_units.snap @@ -0,0 +1,1103 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +[ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "SimpleEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "red" + }, + "id": 148, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 149, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 21, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 150, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "green" + }, + "id": 151, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 152, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "BinaryExpression": { + "operator": "Plus", + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Cast": { + "stmt": { + "Identifier": "red" + }, + "id": 25, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "SimpleEnumType" + }, + "id": 26, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 27, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 28, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 1 + } + }, + "id": 29, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 30, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 153, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "blue" + }, + "id": 154, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 155, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "BinaryExpression": { + "operator": "Plus", + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Cast": { + "stmt": { + "Identifier": "green" + }, + "id": 34, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "SimpleEnumType" + }, + "id": 35, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 36, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 37, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 1 + } + }, + "id": 38, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 39, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 156, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + ] + }, + "id": 157, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 23, + "offset": 24 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 158, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 159, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 10, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 22, + "offset": 158 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 160, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 161, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 162, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 22, + "offset": 184 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 163, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 164, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 165, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 22, + "offset": 210 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 166, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + ] + }, + "id": 167, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 116 + }, + "end": { + "line": 8, + "column": 24, + "offset": 131 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "enum_types.pli" + } + } +] diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_3_enum_types_indexed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_3_enum_types_indexed_content.snap new file mode 100644 index 0000000000..6816431119 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_3_enum_types_indexed_content.snap @@ -0,0 +1,6572 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "indexed_project": { + "project": { + "units": [ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "SimpleEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "red" + }, + "id": 110, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 111, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 21, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 112, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "green" + }, + "id": 113, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 114, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "BinaryExpression": { + "operator": "Plus", + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Cast": { + "stmt": { + "Identifier": "red" + }, + "id": 25, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "SimpleEnumType" + }, + "id": 26, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 27, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 28, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 1 + } + }, + "id": 29, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 30, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 115, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "blue" + }, + "id": 116, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 117, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "BinaryExpression": { + "operator": "Plus", + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Cast": { + "stmt": { + "Identifier": "green" + }, + "id": 34, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "SimpleEnumType" + }, + "id": 35, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 36, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 37, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 1 + } + }, + "id": 38, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 39, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 118, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + ] + }, + "id": 119, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 23, + "offset": 24 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 120, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 121, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 10, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 22, + "offset": 158 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 122, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 123, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 124, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 22, + "offset": 184 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 125, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 126, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 127, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 22, + "offset": 210 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 128, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + ] + }, + "id": 129, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 116 + }, + "end": { + "line": 8, + "column": 24, + "offset": 131 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "enum_types.pli" + } + } + ] + }, + "index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": { + "red": [ + { + "name": "red", + "qualified_name": "SimpleEnumType.red", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "SimpleEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ], + "green": [ + { + "name": "green", + "qualified_name": "SimpleEnumType.green", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "SimpleEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ], + "blue": [ + { + "name": "blue", + "qualified_name": "SimpleEnumType.blue", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "SimpleEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ], + "orange": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 3, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ], + "yellow": [ + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 4, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ], + "purple": [ + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 5, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "pous": { + "inner_map": { + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "simpleenumtype": [ + { + "name": "SimpleEnumType", + "initial_value": [ + 0, + 0 + ], + "information": { + "Enum": { + "name": "SimpleEnumType", + "referenced_type": "DINT", + "variants": [ + { + "name": "red", + "qualified_name": "SimpleEnumType.red", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "SimpleEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + }, + { + "name": "green", + "qualified_name": "SimpleEnumType.green", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "SimpleEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + }, + { + "name": "blue", + "qualified_name": "SimpleEnumType.blue", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "SimpleEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 23, + "offset": 24 + } + } + }, + "file": { + "File": "enum_types.pli" + } + } + } + ], + "complexenumtype": [ + { + "name": "ComplexEnumType", + "initial_value": [ + 3, + 0 + ], + "information": { + "Enum": { + "name": "ComplexEnumType", + "referenced_type": "DINT", + "variants": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 3, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + }, + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 4, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + }, + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 5, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 116 + }, + "end": { + "line": 8, + "column": 24, + "offset": 131 + } + } + }, + "file": { + "File": "enum_types.pli" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 21, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 1 + } + }, + "id": 30, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 2 + } + }, + "id": 39, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 10, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 22, + "offset": 158 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 22, + "offset": 184 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 22, + "offset": 210 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "unresolvables": [] + }, + "context": { + "sources": { + "enum_types.pli": { + "source": "\n TYPE SimpleEnumType : (\n red,\n green,\n blue\n );\n END_TYPE\n\n TYPE ComplexEnumType : (\n orange := 10,\n yellow := 20,\n purple := 30\n );\n END_TYPE\n ", + "path": "enum_types.pli" + } + }, + "provider": { + "current_id": 148 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_3_enum_types_parsed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_3_enum_types_parsed_content.snap new file mode 100644 index 0000000000..f542bdd96a --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_3_enum_types_parsed_content.snap @@ -0,0 +1,647 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "parsed_project": { + "units": [ + { + "global_vars": [], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "SimpleEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "red" + }, + "id": 1, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 2, + "column": 15, + "offset": 44 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "green" + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 58 + }, + "end": { + "line": 3, + "column": 17, + "offset": 63 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "blue" + }, + "id": 5, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 6, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 77 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + ] + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 41 + }, + "end": { + "line": 4, + "column": 16, + "offset": 81 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 23, + "offset": 24 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 8, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 18, + "offset": 154 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 9, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 18, + "offset": 154 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 10, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 22, + "offset": 158 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 9, + "column": 24, + "offset": 160 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 12, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 18, + "offset": 180 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 13, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 18, + "offset": 180 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 22, + "offset": 184 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 15, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 174 + }, + "end": { + "line": 10, + "column": 24, + "offset": 186 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 18, + "offset": 206 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 18, + "offset": 206 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 22, + "offset": 210 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 19, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 200 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + ] + }, + "id": 20, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 12, + "offset": 148 + }, + "end": { + "line": 11, + "column": 24, + "offset": 212 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 116 + }, + "end": { + "line": 8, + "column": 24, + "offset": 131 + } + } + }, + "file": { + "File": "enum_types.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "enum_types.pli" + } + } + ] + }, + "context": { + "sources": { + "enum_types.pli": { + "source": "\n TYPE SimpleEnumType : (\n red,\n green,\n blue\n );\n END_TYPE\n\n TYPE ComplexEnumType : (\n orange := 10,\n yellow := 20,\n purple := 30\n );\n END_TYPE\n ", + "path": "enum_types.pli" + } + }, + "provider": { + "current_id": 21 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_4_structs_annotated_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_4_structs_annotated_content.snap new file mode 100644 index 0000000000..962abd203f --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_4_structs_annotated_content.snap @@ -0,0 +1,8437 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "units": [ + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 108, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 109, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 110, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 111, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 112, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 113, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 114, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 115, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 116, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + ] + }, + "id": 117, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithPrimitiveTypes", + "variables": [ + { + "name": "Field1", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 21, + "offset": 203 + }, + "end": { + "line": 10, + "column": 25, + "offset": 207 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 194 + }, + "end": { + "line": 10, + "column": 18, + "offset": 200 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "Field2", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 21, + "offset": 230 + }, + "end": { + "line": 11, + "column": 24, + "offset": 233 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 221 + }, + "end": { + "line": 11, + "column": 18, + "offset": 227 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "Field3", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 21, + "offset": 256 + }, + "end": { + "line": 12, + "column": 25, + "offset": 260 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 12, + "offset": 247 + }, + "end": { + "line": 12, + "column": 18, + "offset": 253 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithComplexTypes", + "variables": [ + { + "name": "byteField", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 24, + "offset": 367 + }, + "end": { + "line": 18, + "column": 28, + "offset": 371 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 12, + "offset": 355 + }, + "end": { + "line": 18, + "column": 21, + "offset": 364 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "intField", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 23, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 399 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 12, + "offset": 385 + }, + "end": { + "line": 19, + "column": 20, + "offset": 393 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "dIntField", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 24, + "offset": 425 + }, + "end": { + "line": 20, + "column": 28, + "offset": 429 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 12, + "offset": 413 + }, + "end": { + "line": 20, + "column": 21, + "offset": 422 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "stringField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_stringField", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 12, + "offset": 443 + }, + "end": { + "line": 21, + "column": 23, + "offset": 454 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "wStringField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_wStringField", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 12, + "offset": 482 + }, + "end": { + "line": 22, + "column": 24, + "offset": 494 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "complexEnumTypeField", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 35, + "offset": 547 + }, + "end": { + "line": 23, + "column": 50, + "offset": 562 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 12, + "offset": 524 + }, + "end": { + "line": 23, + "column": 32, + "offset": 544 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "intArrayField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_intArrayField", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 12, + "offset": 576 + }, + "end": { + "line": 24, + "column": 25, + "offset": 589 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__StructWithComplexTypes_stringField", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 255 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 33, + "offset": 464 + }, + "end": { + "line": 21, + "column": 36, + "offset": 467 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__StructWithComplexTypes_wStringField", + "is_wide": true, + "size": { + "stmt": { + "Literal": { + "Integer": 6000 + } + }, + "id": 15, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 35, + "offset": 505 + }, + "end": { + "line": 22, + "column": 39, + "offset": 509 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "__StructWithComplexTypes_intArrayField", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 34, + "offset": 598 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 9 + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 36, + "offset": 600 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 42, + "offset": 606 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "structs.pli" + } + }, + "dependencies": [ + { + "Datatype": "ComplexEnumType" + }, + { + "Datatype": "DINT" + }, + { + "Variable": "ComplexEnumType.orange" + }, + { + "Variable": "ComplexEnumType.yellow" + }, + { + "Variable": "ComplexEnumType.purple" + }, + { + "Datatype": "StructWithPrimitiveTypes" + }, + { + "Datatype": "BYTE" + }, + { + "Datatype": "INT" + }, + { + "Datatype": "StructWithComplexTypes" + }, + { + "Datatype": "__StructWithComplexTypes_stringField" + }, + { + "Datatype": "STRING" + }, + { + "Datatype": "__StructWithComplexTypes_wStringField" + }, + { + "Datatype": "WSTRING" + }, + { + "Datatype": "__StructWithComplexTypes_intArrayField" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + }, + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 105, + "name": "__init_structwithprimitivetypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 106, + "name": "__init_structwithcomplextypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 103, + "name": "__user_init_StructWithPrimitiveTypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 104, + "name": "__user_init_StructWithComplexTypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init_structwithprimitivetypes", + "type_name": "__init_structwithprimitivetypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_structwithcomplextypes", + "type_name": "__init_structwithcomplextypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_StructWithPrimitiveTypes", + "type_name": "__user_init_StructWithPrimitiveTypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_StructWithComplexTypes", + "type_name": "__user_init_StructWithComplexTypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__initializers" + } + }, + "dependencies": [ + { + "Datatype": "__init_structwithprimitivetypes" + }, + { + "Datatype": "StructWithPrimitiveTypes" + }, + { + "Datatype": "BYTE" + }, + { + "Datatype": "INT" + }, + { + "Datatype": "DINT" + }, + { + "Datatype": "__init_structwithcomplextypes" + }, + { + "Datatype": "StructWithComplexTypes" + }, + { + "Datatype": "__StructWithComplexTypes_stringField" + }, + { + "Datatype": "STRING" + }, + { + "Datatype": "__StructWithComplexTypes_wStringField" + }, + { + "Datatype": "WSTRING" + }, + { + "Datatype": "ComplexEnumType" + }, + { + "Datatype": "__StructWithComplexTypes_intArrayField" + }, + { + "Datatype": "__user_init_StructWithPrimitiveTypes" + }, + { + "Datatype": "__user_init_StructWithComplexTypes" + }, + { + "Datatype": "__auto_pointer_to_StructWithPrimitiveTypes" + }, + { + "Datatype": "__auto_pointer_to_StructWithComplexTypes" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + }, + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 107, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + }, + "dependencies": [ + { + "Datatype": "__init___TestProject" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + } + ], + "index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": { + "__structwithprimitivetypes__init": [ + { + "name": "__StructWithPrimitiveTypes__init", + "qualified_name": "__StructWithPrimitiveTypes__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "StructWithPrimitiveTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ], + "__structwithcomplextypes__init": [ + { + "name": "__StructWithComplexTypes__init", + "qualified_name": "__StructWithComplexTypes__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "StructWithComplexTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ] + } + }, + "enum_global_variables": { + "inner_map": { + "orange": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ], + "yellow": [ + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ], + "purple": [ + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ] + } + }, + "pous": { + "inner_map": { + "__init_structwithprimitivetypes": [ + { + "Function": { + "name": "__init_structwithprimitivetypes", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init_structwithcomplextypes": [ + { + "Function": { + "name": "__init_structwithcomplextypes", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init_structwithprimitivetypes": [ + { + "Function": { + "name": "__user_init_StructWithPrimitiveTypes", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init_structwithcomplextypes": [ + { + "Function": { + "name": "__user_init_StructWithComplexTypes", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init___testproject": [ + { + "Function": { + "name": "__init___TestProject", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "__init_structwithprimitivetypes": { + "call_name": "__init_structwithprimitivetypes", + "type_name": "__init_structwithprimitivetypes", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + } + }, + "__init_structwithcomplextypes": { + "call_name": "__init_structwithcomplextypes", + "type_name": "__init_structwithcomplextypes", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + } + }, + "__user_init_structwithprimitivetypes": { + "call_name": "__user_init_StructWithPrimitiveTypes", + "type_name": "__user_init_StructWithPrimitiveTypes", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__user_init_structwithcomplextypes": { + "call_name": "__user_init_StructWithComplexTypes", + "type_name": "__user_init_StructWithComplexTypes", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__init___testproject": { + "call_name": "__init___TestProject", + "type_name": "__init___TestProject", + "associated_class": null, + "implementation_type": "ProjectInit", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "complexenumtype": [ + { + "name": "ComplexEnumType", + "initial_value": [ + 0, + 0 + ], + "information": { + "Enum": { + "name": "ComplexEnumType", + "referenced_type": "DINT", + "variants": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ] + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ], + "structwithprimitivetypes": [ + { + "name": "StructWithPrimitiveTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "StructWithPrimitiveTypes", + "members": [ + { + "name": "Field1", + "qualified_name": "StructWithPrimitiveTypes.Field1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BYTE", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 194 + }, + "end": { + "line": 10, + "column": 18, + "offset": 200 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "Field2", + "qualified_name": "StructWithPrimitiveTypes.Field2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 221 + }, + "end": { + "line": 11, + "column": 18, + "offset": 227 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "Field3", + "qualified_name": "StructWithPrimitiveTypes.Field3", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 12, + "offset": 247 + }, + "end": { + "line": 12, + "column": 18, + "offset": 253 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ], + "structwithcomplextypes": [ + { + "name": "StructWithComplexTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "StructWithComplexTypes", + "members": [ + { + "name": "byteField", + "qualified_name": "StructWithComplexTypes.byteField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BYTE", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 12, + "offset": 355 + }, + "end": { + "line": 18, + "column": 21, + "offset": 364 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "intField", + "qualified_name": "StructWithComplexTypes.intField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 12, + "offset": 385 + }, + "end": { + "line": 19, + "column": 20, + "offset": 393 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "dIntField", + "qualified_name": "StructWithComplexTypes.dIntField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 12, + "offset": 413 + }, + "end": { + "line": 20, + "column": 21, + "offset": 422 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "stringField", + "qualified_name": "StructWithComplexTypes.stringField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__StructWithComplexTypes_stringField", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 12, + "offset": 443 + }, + "end": { + "line": 21, + "column": 23, + "offset": 454 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "wStringField", + "qualified_name": "StructWithComplexTypes.wStringField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__StructWithComplexTypes_wStringField", + "location_in_parent": 4, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 12, + "offset": 482 + }, + "end": { + "line": 22, + "column": 24, + "offset": 494 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "complexEnumTypeField", + "qualified_name": "StructWithComplexTypes.complexEnumTypeField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 5, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 12, + "offset": 524 + }, + "end": { + "line": 23, + "column": 32, + "offset": 544 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "intArrayField", + "qualified_name": "StructWithComplexTypes.intArrayField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__StructWithComplexTypes_intArrayField", + "location_in_parent": 6, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 12, + "offset": 576 + }, + "end": { + "line": 24, + "column": 25, + "offset": 589 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ], + "__structwithcomplextypes_stringfield": [ + { + "name": "__StructWithComplexTypes_stringField", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 256 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ], + "__structwithcomplextypes_wstringfield": [ + { + "name": "__StructWithComplexTypes_wStringField", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 6001 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ], + "__structwithcomplextypes_intarrayfield": [ + { + "name": "__StructWithComplexTypes_intArrayField", + "initial_value": null, + "information": { + "Array": { + "name": "__StructWithComplexTypes_intArrayField", + "inner_type_name": "INT", + "dimensions": [ + { + "start_offset": { + "ConstExpression": [ + 3, + 0 + ] + }, + "end_offset": { + "ConstExpression": [ + 4, + 0 + ] + } + } + ] + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ], + "__auto_pointer_to_structwithprimitivetypes": [ + { + "name": "__auto_pointer_to_StructWithPrimitiveTypes", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_StructWithPrimitiveTypes", + "inner_type_name": "StructWithPrimitiveTypes", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to_structwithcomplextypes": [ + { + "name": "__auto_pointer_to_StructWithComplexTypes", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_StructWithComplexTypes", + "inner_type_name": "StructWithComplexTypes", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "__init_structwithprimitivetypes": [ + { + "name": "__init_structwithprimitivetypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__init_structwithprimitivetypes", + "members": [ + { + "name": "self", + "qualified_name": "__init_structwithprimitivetypes.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_StructWithPrimitiveTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + } + } + ], + "__init_structwithcomplextypes": [ + { + "name": "__init_structwithcomplextypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__init_structwithcomplextypes", + "members": [ + { + "name": "self", + "qualified_name": "__init_structwithcomplextypes.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_StructWithComplexTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + } + } + ], + "__user_init_structwithprimitivetypes": [ + { + "name": "__user_init_StructWithPrimitiveTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init_StructWithPrimitiveTypes", + "members": [ + { + "name": "self", + "qualified_name": "__user_init_StructWithPrimitiveTypes.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_StructWithPrimitiveTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__user_init_structwithcomplextypes": [ + { + "name": "__user_init_StructWithComplexTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init_StructWithComplexTypes", + "members": [ + { + "name": "self", + "qualified_name": "__user_init_StructWithComplexTypes.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_StructWithComplexTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__init___testproject": [ + { + "name": "__init___TestProject", + "initial_value": null, + "information": { + "Struct": { + "name": "__init___TestProject", + "members": [], + "source": { + "Pou": "ProjectInit" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 34, + "offset": 598 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 9 + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 36, + "offset": 600 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "annotations": { + "annotation_map": { + "type_map": { + "3": { + "Value": { + "resulting_type": "DINT" + } + }, + "109": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.orange", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "108": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.orange", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "7": { + "Value": { + "resulting_type": "DINT" + } + }, + "112": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.yellow", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "111": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.yellow", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "11": { + "Value": { + "resulting_type": "DINT" + } + }, + "115": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.purple", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "114": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.purple", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + } + }, + "type_hint_map": { + "3": { + "Value": { + "resulting_type": "ComplexEnumType" + } + }, + "7": { + "Value": { + "resulting_type": "ComplexEnumType" + } + }, + "11": { + "Value": { + "resulting_type": "ComplexEnumType" + } + } + }, + "generic_nature_map": {}, + "hidden_function_calls": {}, + "new_index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": {} + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": {}, + "type_index": { + "types": { + "inner_map": {} + }, + "pou_types": { + "inner_map": {} + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + } + }, + "bool_id": 140, + "bool_annotation": { + "Value": { + "resulting_type": "BOOL" + } + } + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_4_structs_compilation_units.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_4_structs_compilation_units.snap new file mode 100644 index 0000000000..2b021037e4 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_4_structs_compilation_units.snap @@ -0,0 +1,1886 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +[ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 108, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 109, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 110, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 111, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 112, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 113, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 114, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 115, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 116, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + ] + }, + "id": 117, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithPrimitiveTypes", + "variables": [ + { + "name": "Field1", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 21, + "offset": 203 + }, + "end": { + "line": 10, + "column": 25, + "offset": 207 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 194 + }, + "end": { + "line": 10, + "column": 18, + "offset": 200 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "Field2", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 21, + "offset": 230 + }, + "end": { + "line": 11, + "column": 24, + "offset": 233 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 221 + }, + "end": { + "line": 11, + "column": 18, + "offset": 227 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "Field3", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 21, + "offset": 256 + }, + "end": { + "line": 12, + "column": 25, + "offset": 260 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 12, + "offset": 247 + }, + "end": { + "line": 12, + "column": 18, + "offset": 253 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithComplexTypes", + "variables": [ + { + "name": "byteField", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 24, + "offset": 367 + }, + "end": { + "line": 18, + "column": 28, + "offset": 371 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 12, + "offset": 355 + }, + "end": { + "line": 18, + "column": 21, + "offset": 364 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "intField", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 23, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 399 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 12, + "offset": 385 + }, + "end": { + "line": 19, + "column": 20, + "offset": 393 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "dIntField", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 24, + "offset": 425 + }, + "end": { + "line": 20, + "column": 28, + "offset": 429 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 12, + "offset": 413 + }, + "end": { + "line": 20, + "column": 21, + "offset": 422 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "stringField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_stringField", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 12, + "offset": 443 + }, + "end": { + "line": 21, + "column": 23, + "offset": 454 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "wStringField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_wStringField", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 12, + "offset": 482 + }, + "end": { + "line": 22, + "column": 24, + "offset": 494 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "complexEnumTypeField", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 35, + "offset": 547 + }, + "end": { + "line": 23, + "column": 50, + "offset": 562 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 12, + "offset": 524 + }, + "end": { + "line": 23, + "column": 32, + "offset": 544 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "intArrayField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_intArrayField", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 12, + "offset": 576 + }, + "end": { + "line": 24, + "column": 25, + "offset": 589 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__StructWithComplexTypes_stringField", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 255 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 33, + "offset": 464 + }, + "end": { + "line": 21, + "column": 36, + "offset": 467 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__StructWithComplexTypes_wStringField", + "is_wide": true, + "size": { + "stmt": { + "Literal": { + "Integer": 6000 + } + }, + "id": 15, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 35, + "offset": 505 + }, + "end": { + "line": 22, + "column": 39, + "offset": 509 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "__StructWithComplexTypes_intArrayField", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 34, + "offset": 598 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 9 + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 36, + "offset": 600 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 42, + "offset": 606 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "structs.pli" + } + }, + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 105, + "name": "__init_structwithprimitivetypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 106, + "name": "__init_structwithcomplextypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 103, + "name": "__user_init_StructWithPrimitiveTypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 104, + "name": "__user_init_StructWithComplexTypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init_structwithprimitivetypes", + "type_name": "__init_structwithprimitivetypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_structwithcomplextypes", + "type_name": "__init_structwithcomplextypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "structs.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_StructWithPrimitiveTypes", + "type_name": "__user_init_StructWithPrimitiveTypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_StructWithComplexTypes", + "type_name": "__user_init_StructWithComplexTypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__initializers" + } + }, + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 107, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + } +] diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_4_structs_indexed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_4_structs_indexed_content.snap new file mode 100644 index 0000000000..e7ce2f639d --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_4_structs_indexed_content.snap @@ -0,0 +1,6992 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "indexed_project": { + "project": { + "units": [ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 75, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 76, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 77, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 78, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 79, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 80, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 81, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 82, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 83, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + ] + }, + "id": 84, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithPrimitiveTypes", + "variables": [ + { + "name": "Field1", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 21, + "offset": 203 + }, + "end": { + "line": 10, + "column": 25, + "offset": 207 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 194 + }, + "end": { + "line": 10, + "column": 18, + "offset": 200 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "Field2", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 21, + "offset": 230 + }, + "end": { + "line": 11, + "column": 24, + "offset": 233 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 221 + }, + "end": { + "line": 11, + "column": 18, + "offset": 227 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "Field3", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 21, + "offset": 256 + }, + "end": { + "line": 12, + "column": 25, + "offset": 260 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 12, + "offset": 247 + }, + "end": { + "line": 12, + "column": 18, + "offset": 253 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithComplexTypes", + "variables": [ + { + "name": "byteField", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 24, + "offset": 367 + }, + "end": { + "line": 18, + "column": 28, + "offset": 371 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 12, + "offset": 355 + }, + "end": { + "line": 18, + "column": 21, + "offset": 364 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "intField", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 23, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 399 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 12, + "offset": 385 + }, + "end": { + "line": 19, + "column": 20, + "offset": 393 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "dIntField", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 24, + "offset": 425 + }, + "end": { + "line": 20, + "column": 28, + "offset": 429 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 12, + "offset": 413 + }, + "end": { + "line": 20, + "column": 21, + "offset": 422 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "stringField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_stringField", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 12, + "offset": 443 + }, + "end": { + "line": 21, + "column": 23, + "offset": 454 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "wStringField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_wStringField", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 12, + "offset": 482 + }, + "end": { + "line": 22, + "column": 24, + "offset": 494 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "complexEnumTypeField", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 35, + "offset": 547 + }, + "end": { + "line": 23, + "column": 50, + "offset": 562 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 12, + "offset": 524 + }, + "end": { + "line": 23, + "column": 32, + "offset": 544 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "intArrayField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_intArrayField", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 12, + "offset": 576 + }, + "end": { + "line": 24, + "column": 25, + "offset": 589 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__StructWithComplexTypes_stringField", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 255 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 33, + "offset": 464 + }, + "end": { + "line": 21, + "column": 36, + "offset": 467 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__StructWithComplexTypes_wStringField", + "is_wide": true, + "size": { + "stmt": { + "Literal": { + "Integer": 6000 + } + }, + "id": 15, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 35, + "offset": 505 + }, + "end": { + "line": 22, + "column": 39, + "offset": 509 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "__StructWithComplexTypes_intArrayField", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 34, + "offset": 598 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 9 + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 36, + "offset": 600 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 42, + "offset": 606 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "structs.pli" + } + } + ] + }, + "index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": { + "__structwithprimitivetypes__init": [ + { + "name": "__StructWithPrimitiveTypes__init", + "qualified_name": "__StructWithPrimitiveTypes__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "StructWithPrimitiveTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ], + "__structwithcomplextypes__init": [ + { + "name": "__StructWithComplexTypes__init", + "qualified_name": "__StructWithComplexTypes__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "StructWithComplexTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ] + } + }, + "enum_global_variables": { + "inner_map": { + "orange": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ], + "yellow": [ + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ], + "purple": [ + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ] + } + }, + "pous": { + "inner_map": { + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "complexenumtype": [ + { + "name": "ComplexEnumType", + "initial_value": [ + 0, + 0 + ], + "information": { + "Enum": { + "name": "ComplexEnumType", + "referenced_type": "DINT", + "variants": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ] + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ], + "structwithprimitivetypes": [ + { + "name": "StructWithPrimitiveTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "StructWithPrimitiveTypes", + "members": [ + { + "name": "Field1", + "qualified_name": "StructWithPrimitiveTypes.Field1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BYTE", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 194 + }, + "end": { + "line": 10, + "column": 18, + "offset": 200 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "Field2", + "qualified_name": "StructWithPrimitiveTypes.Field2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 221 + }, + "end": { + "line": 11, + "column": 18, + "offset": 227 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "Field3", + "qualified_name": "StructWithPrimitiveTypes.Field3", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 12, + "offset": 247 + }, + "end": { + "line": 12, + "column": 18, + "offset": 253 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ], + "structwithcomplextypes": [ + { + "name": "StructWithComplexTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "StructWithComplexTypes", + "members": [ + { + "name": "byteField", + "qualified_name": "StructWithComplexTypes.byteField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BYTE", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 12, + "offset": 355 + }, + "end": { + "line": 18, + "column": 21, + "offset": 364 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "intField", + "qualified_name": "StructWithComplexTypes.intField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 12, + "offset": 385 + }, + "end": { + "line": 19, + "column": 20, + "offset": 393 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "dIntField", + "qualified_name": "StructWithComplexTypes.dIntField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 12, + "offset": 413 + }, + "end": { + "line": 20, + "column": 21, + "offset": 422 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "stringField", + "qualified_name": "StructWithComplexTypes.stringField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__StructWithComplexTypes_stringField", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 12, + "offset": 443 + }, + "end": { + "line": 21, + "column": 23, + "offset": 454 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "wStringField", + "qualified_name": "StructWithComplexTypes.wStringField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__StructWithComplexTypes_wStringField", + "location_in_parent": 4, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 12, + "offset": 482 + }, + "end": { + "line": 22, + "column": 24, + "offset": 494 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "complexEnumTypeField", + "qualified_name": "StructWithComplexTypes.complexEnumTypeField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 5, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 12, + "offset": 524 + }, + "end": { + "line": 23, + "column": 32, + "offset": 544 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + }, + { + "name": "intArrayField", + "qualified_name": "StructWithComplexTypes.intArrayField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__StructWithComplexTypes_intArrayField", + "location_in_parent": 6, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 12, + "offset": 576 + }, + "end": { + "line": 24, + "column": 25, + "offset": 589 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ], + "__structwithcomplextypes_stringfield": [ + { + "name": "__StructWithComplexTypes_stringField", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 256 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ], + "__structwithcomplextypes_wstringfield": [ + { + "name": "__StructWithComplexTypes_wStringField", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 6001 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ], + "__structwithcomplextypes_intarrayfield": [ + { + "name": "__StructWithComplexTypes_intArrayField", + "initial_value": null, + "information": { + "Array": { + "name": "__StructWithComplexTypes_intArrayField", + "inner_type_name": "INT", + "dimensions": [ + { + "start_offset": { + "ConstExpression": [ + 3, + 0 + ] + }, + "end_offset": { + "ConstExpression": [ + 4, + 0 + ] + } + } + ] + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 34, + "offset": 598 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 9 + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 36, + "offset": 600 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "unresolvables": [] + }, + "context": { + "sources": { + "structs.pli": { + "source": "\n TYPE ComplexEnumType : (\n orange := 10,\n yellow := 20,\n purple := 30\n );\n END_TYPE\n\n TYPE StructWithPrimitiveTypes:\n STRUCT\n Field1 : BYTE;\n Field2 : INT;\n Field3 : DINT;\n END_STRUCT\n END_TYPE\n\n TYPE StructWithComplexTypes:\n STRUCT\n byteField : BYTE;\n intField : INT;\n dIntField : DINT;\n stringField : STRING[255];\n wStringField : WSTRING[6000];\n complexEnumTypeField : ComplexEnumType;\n intArrayField: ARRAY[0..9] OF INT;\n END_STRUCT\n END_TYPE\n ", + "path": "structs.pli" + } + }, + "provider": { + "current_id": 103 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_4_structs_parsed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_4_structs_parsed_content.snap new file mode 100644 index 0000000000..d5f0da4837 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_4_structs_parsed_content.snap @@ -0,0 +1,1144 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "parsed_project": { + "units": [ + { + "global_vars": [], + "var_config": [], + "pous": [], + "implementations": [], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 1, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 18, + "offset": 48 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 18, + "offset": 48 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 5, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 18, + "offset": 74 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 6, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 18, + "offset": 74 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 8, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 9, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 18, + "offset": 100 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 10, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 18, + "offset": 100 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 12, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + ] + }, + "id": 13, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithPrimitiveTypes", + "variables": [ + { + "name": "Field1", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 21, + "offset": 203 + }, + "end": { + "line": 10, + "column": 25, + "offset": 207 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 194 + }, + "end": { + "line": 10, + "column": 18, + "offset": 200 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "Field2", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 21, + "offset": 230 + }, + "end": { + "line": 11, + "column": 24, + "offset": 233 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 221 + }, + "end": { + "line": 11, + "column": 18, + "offset": 227 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "Field3", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 21, + "offset": 256 + }, + "end": { + "line": 12, + "column": 25, + "offset": 260 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 12, + "offset": 247 + }, + "end": { + "line": 12, + "column": 18, + "offset": 253 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithComplexTypes", + "variables": [ + { + "name": "byteField", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 24, + "offset": 367 + }, + "end": { + "line": 18, + "column": 28, + "offset": 371 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 12, + "offset": 355 + }, + "end": { + "line": 18, + "column": 21, + "offset": 364 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "intField", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 23, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 399 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 12, + "offset": 385 + }, + "end": { + "line": 19, + "column": 20, + "offset": 393 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "dIntField", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 24, + "offset": 425 + }, + "end": { + "line": 20, + "column": 28, + "offset": 429 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 12, + "offset": 413 + }, + "end": { + "line": 20, + "column": 21, + "offset": 422 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "stringField", + "data_type_declaration": { + "Definition": { + "data_type": { + "StringType": { + "name": null, + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 255 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 33, + "offset": 464 + }, + "end": { + "line": 21, + "column": 36, + "offset": 467 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 12, + "offset": 443 + }, + "end": { + "line": 21, + "column": 23, + "offset": 454 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "wStringField", + "data_type_declaration": { + "Definition": { + "data_type": { + "StringType": { + "name": null, + "is_wide": true, + "size": { + "stmt": { + "Literal": { + "Integer": 6000 + } + }, + "id": 15, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 35, + "offset": 505 + }, + "end": { + "line": 22, + "column": 39, + "offset": 509 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 12, + "offset": 482 + }, + "end": { + "line": 22, + "column": 24, + "offset": 494 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "complexEnumTypeField", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 35, + "offset": 547 + }, + "end": { + "line": 23, + "column": 50, + "offset": 562 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 12, + "offset": 524 + }, + "end": { + "line": 23, + "column": 32, + "offset": 544 + } + } + }, + "file": { + "File": "structs.pli" + } + } + }, + { + "name": "intArrayField", + "data_type_declaration": { + "Definition": { + "data_type": { + "ArrayType": { + "name": null, + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 34, + "offset": 598 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 9 + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 36, + "offset": 600 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + } + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 42, + "offset": 606 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 12, + "offset": 576 + }, + "end": { + "line": 24, + "column": 25, + "offset": 589 + } + } + }, + "file": { + "File": "structs.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "structs.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "structs.pli" + } + } + ] + }, + "context": { + "sources": { + "structs.pli": { + "source": "\n TYPE ComplexEnumType : (\n orange := 10,\n yellow := 20,\n purple := 30\n );\n END_TYPE\n\n TYPE StructWithPrimitiveTypes:\n STRUCT\n Field1 : BYTE;\n Field2 : INT;\n Field3 : DINT;\n END_STRUCT\n END_TYPE\n\n TYPE StructWithComplexTypes:\n STRUCT\n byteField : BYTE;\n intField : INT;\n dIntField : DINT;\n stringField : STRING[255];\n wStringField : WSTRING[6000];\n complexEnumTypeField : ComplexEnumType;\n intArrayField: ARRAY[0..9] OF INT;\n END_STRUCT\n END_TYPE\n ", + "path": "structs.pli" + } + }, + "provider": { + "current_id": 19 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_5_functions_with_primitive_types_annotated_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_5_functions_with_primitive_types_annotated_content.snap new file mode 100644 index 0000000000..74dbd02227 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_5_functions_with_primitive_types_annotated_content.snap @@ -0,0 +1,6541 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "units": [ + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 1, + "name": "fnThatIsVoid", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 62 + }, + "end": { + "line": 3, + "column": 24, + "offset": 65 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 49 + }, + "end": { + "line": 3, + "column": 19, + "offset": 60 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 4, + "offset": 31 + }, + "end": { + "line": 2, + "column": 13, + "offset": 40 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 5, + "column": 16, + "offset": 95 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 13, + "offset": 14 + }, + "end": { + "line": 1, + "column": 25, + "offset": 26 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 2, + "name": "fnThatReturnsInt", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varRealInputToFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "REAL", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 28, + "offset": 174 + }, + "end": { + "line": 9, + "column": 32, + "offset": 178 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 154 + }, + "end": { + "line": 9, + "column": 26, + "offset": 172 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "name": "varIntInputToFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 207 + }, + "end": { + "line": 10, + "column": 30, + "offset": 210 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 188 + }, + "end": { + "line": 10, + "column": 25, + "offset": 205 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "name": "varDateAndTimeInputToFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "DATE_AND_TIME", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 35, + "offset": 247 + }, + "end": { + "line": 11, + "column": 48, + "offset": 260 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 220 + }, + "end": { + "line": 11, + "column": 33, + "offset": 245 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 136 + }, + "end": { + "line": 8, + "column": 13, + "offset": 145 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varRealInOutFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "REAL", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 26, + "offset": 315 + }, + "end": { + "line": 14, + "column": 30, + "offset": 319 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 8, + "offset": 297 + }, + "end": { + "line": 14, + "column": 24, + "offset": 313 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 278 + }, + "end": { + "line": 13, + "column": 14, + "offset": 288 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntOutputFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 26, + "offset": 374 + }, + "end": { + "line": 17, + "column": 29, + "offset": 377 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 356 + }, + "end": { + "line": 17, + "column": 24, + "offset": 372 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": "Output", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 4, + "offset": 337 + }, + "end": { + "line": 16, + "column": 14, + "offset": 347 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "return_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 31, + "offset": 128 + }, + "end": { + "line": 7, + "column": 34, + "offset": 131 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 4, + "offset": 101 + }, + "end": { + "line": 19, + "column": 16, + "offset": 407 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 3, + "name": "fnThatReturnsTimeOfDay", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varDateTimeInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "DT", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 27, + "offset": 492 + }, + "end": { + "line": 23, + "column": 29, + "offset": 494 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 8, + "offset": 473 + }, + "end": { + "line": 23, + "column": 24, + "offset": 489 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 4, + "offset": 455 + }, + "end": { + "line": 22, + "column": 13, + "offset": 464 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "return_type": { + "Reference": { + "referenced_type": "TOD", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 38, + "offset": 447 + }, + "end": { + "line": 21, + "column": 41, + "offset": 450 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 4, + "offset": 413 + }, + "end": { + "line": 25, + "column": 16, + "offset": 524 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fnThatIsVoid", + "type_name": "fnThatIsVoid", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 83 + }, + "end": { + "line": 4, + "column": 11, + "offset": 78 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 13, + "offset": 14 + }, + "end": { + "line": 1, + "column": 25, + "offset": 26 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 83 + }, + "end": { + "line": 5, + "column": 16, + "offset": 95 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatReturnsInt", + "type_name": "fnThatReturnsInt", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 395 + }, + "end": { + "line": 18, + "column": 11, + "offset": 390 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 395 + }, + "end": { + "line": 19, + "column": 16, + "offset": 407 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatReturnsTimeOfDay", + "type_name": "fnThatReturnsTimeOfDay", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 4, + "offset": 512 + }, + "end": { + "line": 24, + "column": 11, + "offset": 507 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 4, + "offset": 512 + }, + "end": { + "line": 25, + "column": 16, + "offset": 524 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "dependencies": [ + { + "Datatype": "fnThatIsVoid" + }, + { + "Datatype": "INT" + }, + { + "Datatype": "fnThatReturnsInt" + }, + { + "Datatype": "REAL" + }, + { + "Datatype": "DATE_AND_TIME" + }, + { + "Datatype": "fnThatReturnsTimeOfDay" + }, + { + "Datatype": "DT" + }, + { + "Datatype": "__auto_pointer_to_REAL" + }, + { + "Datatype": "__auto_pointer_to_INT" + }, + { + "Datatype": "TOD" + }, + { + "Datatype": "TIME_OF_DAY" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + }, + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 58, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + }, + "dependencies": [ + { + "Datatype": "__init___TestProject" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + } + ], + "index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": { + "fnthatisvoid": [ + { + "Function": { + "name": "fnThatIsVoid", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 13, + "offset": 14 + }, + "end": { + "line": 1, + "column": 25, + "offset": 26 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthatreturnsint": [ + { + "Function": { + "name": "fnThatReturnsInt", + "return_type": "INT", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthatreturnstimeofday": [ + { + "Function": { + "name": "fnThatReturnsTimeOfDay", + "return_type": "TOD", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init___testproject": [ + { + "Function": { + "name": "__init___TestProject", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "fnthatisvoid": { + "call_name": "fnThatIsVoid", + "type_name": "fnThatIsVoid", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 83 + }, + "end": { + "line": 4, + "column": 11, + "offset": 78 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + "fnthatreturnsint": { + "call_name": "fnThatReturnsInt", + "type_name": "fnThatReturnsInt", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 395 + }, + "end": { + "line": 18, + "column": 11, + "offset": 390 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + "fnthatreturnstimeofday": { + "call_name": "fnThatReturnsTimeOfDay", + "type_name": "fnThatReturnsTimeOfDay", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 4, + "offset": 512 + }, + "end": { + "line": 24, + "column": 11, + "offset": 507 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + "__init___testproject": { + "call_name": "__init___TestProject", + "type_name": "__init___TestProject", + "associated_class": null, + "implementation_type": "ProjectInit", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "__auto_pointer_to_real": [ + { + "name": "__auto_pointer_to_REAL", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_REAL", + "inner_type_name": "REAL", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to_int": [ + { + "name": "__auto_pointer_to_INT", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_INT", + "inner_type_name": "INT", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "fnthatisvoid": [ + { + "name": "fnThatIsVoid", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatIsVoid", + "members": [ + { + "name": "varIntInput", + "qualified_name": "fnThatIsVoid.varIntInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 49 + }, + "end": { + "line": 3, + "column": 19, + "offset": 60 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 13, + "offset": 14 + }, + "end": { + "line": 1, + "column": 25, + "offset": 26 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "fnthatreturnsint": [ + { + "name": "fnThatReturnsInt", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatReturnsInt", + "members": [ + { + "name": "varRealInputToFunc", + "qualified_name": "fnThatReturnsInt.varRealInputToFunc", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "REAL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 154 + }, + "end": { + "line": 9, + "column": 26, + "offset": 172 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + }, + { + "name": "varIntInputToFunc", + "qualified_name": "fnThatReturnsInt.varIntInputToFunc", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 188 + }, + "end": { + "line": 10, + "column": 25, + "offset": 205 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + }, + { + "name": "varDateAndTimeInputToFunc", + "qualified_name": "fnThatReturnsInt.varDateAndTimeInputToFunc", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DATE_AND_TIME", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 220 + }, + "end": { + "line": 11, + "column": 33, + "offset": 245 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + }, + { + "name": "varRealInOutFunc", + "qualified_name": "fnThatReturnsInt.varRealInOutFunc", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_REAL", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 8, + "offset": 297 + }, + "end": { + "line": 14, + "column": 24, + "offset": 313 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + }, + { + "name": "varIntOutputFunc", + "qualified_name": "fnThatReturnsInt.varIntOutputFunc", + "initial_value": null, + "argument_type": { + "ByRef": "Output" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_INT", + "location_in_parent": 4, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 356 + }, + "end": { + "line": 17, + "column": 24, + "offset": 372 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + }, + { + "name": "fnThatReturnsInt", + "qualified_name": "fnThatReturnsInt.fnThatReturnsInt", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 5, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "fnthatreturnstimeofday": [ + { + "name": "fnThatReturnsTimeOfDay", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatReturnsTimeOfDay", + "members": [ + { + "name": "varDateTimeInput", + "qualified_name": "fnThatReturnsTimeOfDay.varDateTimeInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 8, + "offset": 473 + }, + "end": { + "line": 23, + "column": 24, + "offset": 489 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + }, + { + "name": "fnThatReturnsTimeOfDay", + "qualified_name": "fnThatReturnsTimeOfDay.fnThatReturnsTimeOfDay", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "TOD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "__init___testproject": [ + { + "name": "__init___TestProject", + "initial_value": null, + "information": { + "Struct": { + "name": "__init___TestProject", + "members": [], + "source": { + "Pou": "ProjectInit" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "annotations": { + "annotation_map": { + "type_map": {}, + "type_hint_map": {}, + "generic_nature_map": {}, + "hidden_function_calls": {}, + "new_index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": {} + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": {}, + "type_index": { + "types": { + "inner_map": {} + }, + "pou_types": { + "inner_map": {} + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + } + }, + "bool_id": 81, + "bool_annotation": { + "Value": { + "resulting_type": "BOOL" + } + } + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_5_functions_with_primitive_types_compilation_units.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_5_functions_with_primitive_types_compilation_units.snap new file mode 100644 index 0000000000..5f4ec06087 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_5_functions_with_primitive_types_compilation_units.snap @@ -0,0 +1,1018 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +[ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 1, + "name": "fnThatIsVoid", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 62 + }, + "end": { + "line": 3, + "column": 24, + "offset": 65 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 49 + }, + "end": { + "line": 3, + "column": 19, + "offset": 60 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 4, + "offset": 31 + }, + "end": { + "line": 2, + "column": 13, + "offset": 40 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 5, + "column": 16, + "offset": 95 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 13, + "offset": 14 + }, + "end": { + "line": 1, + "column": 25, + "offset": 26 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 2, + "name": "fnThatReturnsInt", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varRealInputToFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "REAL", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 28, + "offset": 174 + }, + "end": { + "line": 9, + "column": 32, + "offset": 178 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 154 + }, + "end": { + "line": 9, + "column": 26, + "offset": 172 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "name": "varIntInputToFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 207 + }, + "end": { + "line": 10, + "column": 30, + "offset": 210 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 188 + }, + "end": { + "line": 10, + "column": 25, + "offset": 205 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "name": "varDateAndTimeInputToFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "DATE_AND_TIME", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 35, + "offset": 247 + }, + "end": { + "line": 11, + "column": 48, + "offset": 260 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 220 + }, + "end": { + "line": 11, + "column": 33, + "offset": 245 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 136 + }, + "end": { + "line": 8, + "column": 13, + "offset": 145 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varRealInOutFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "REAL", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 26, + "offset": 315 + }, + "end": { + "line": 14, + "column": 30, + "offset": 319 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 8, + "offset": 297 + }, + "end": { + "line": 14, + "column": 24, + "offset": 313 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 278 + }, + "end": { + "line": 13, + "column": 14, + "offset": 288 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntOutputFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 26, + "offset": 374 + }, + "end": { + "line": 17, + "column": 29, + "offset": 377 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 356 + }, + "end": { + "line": 17, + "column": 24, + "offset": 372 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": "Output", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 4, + "offset": 337 + }, + "end": { + "line": 16, + "column": 14, + "offset": 347 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "return_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 31, + "offset": 128 + }, + "end": { + "line": 7, + "column": 34, + "offset": 131 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 4, + "offset": 101 + }, + "end": { + "line": 19, + "column": 16, + "offset": 407 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 3, + "name": "fnThatReturnsTimeOfDay", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varDateTimeInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "DT", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 27, + "offset": 492 + }, + "end": { + "line": 23, + "column": 29, + "offset": 494 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 8, + "offset": 473 + }, + "end": { + "line": 23, + "column": 24, + "offset": 489 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 4, + "offset": 455 + }, + "end": { + "line": 22, + "column": 13, + "offset": 464 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "return_type": { + "Reference": { + "referenced_type": "TOD", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 38, + "offset": 447 + }, + "end": { + "line": 21, + "column": 41, + "offset": 450 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 4, + "offset": 413 + }, + "end": { + "line": 25, + "column": 16, + "offset": 524 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fnThatIsVoid", + "type_name": "fnThatIsVoid", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 83 + }, + "end": { + "line": 4, + "column": 11, + "offset": 78 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 13, + "offset": 14 + }, + "end": { + "line": 1, + "column": 25, + "offset": 26 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 83 + }, + "end": { + "line": 5, + "column": 16, + "offset": 95 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatReturnsInt", + "type_name": "fnThatReturnsInt", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 395 + }, + "end": { + "line": 18, + "column": 11, + "offset": 390 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 395 + }, + "end": { + "line": 19, + "column": 16, + "offset": 407 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatReturnsTimeOfDay", + "type_name": "fnThatReturnsTimeOfDay", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 4, + "offset": 512 + }, + "end": { + "line": 24, + "column": 11, + "offset": 507 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 4, + "offset": 512 + }, + "end": { + "line": 25, + "column": 16, + "offset": 524 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 58, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + } +] diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_5_functions_with_primitive_types_indexed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_5_functions_with_primitive_types_indexed_content.snap new file mode 100644 index 0000000000..3ab849cc2a --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_5_functions_with_primitive_types_indexed_content.snap @@ -0,0 +1,6292 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "indexed_project": { + "project": { + "units": [ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 1, + "name": "fnThatIsVoid", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 62 + }, + "end": { + "line": 3, + "column": 24, + "offset": 65 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 49 + }, + "end": { + "line": 3, + "column": 19, + "offset": 60 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 4, + "offset": 31 + }, + "end": { + "line": 2, + "column": 13, + "offset": 40 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 5, + "column": 16, + "offset": 95 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 13, + "offset": 14 + }, + "end": { + "line": 1, + "column": 25, + "offset": 26 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 2, + "name": "fnThatReturnsInt", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varRealInputToFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "REAL", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 28, + "offset": 174 + }, + "end": { + "line": 9, + "column": 32, + "offset": 178 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 154 + }, + "end": { + "line": 9, + "column": 26, + "offset": 172 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "name": "varIntInputToFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 207 + }, + "end": { + "line": 10, + "column": 30, + "offset": 210 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 188 + }, + "end": { + "line": 10, + "column": 25, + "offset": 205 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "name": "varDateAndTimeInputToFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "DATE_AND_TIME", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 35, + "offset": 247 + }, + "end": { + "line": 11, + "column": 48, + "offset": 260 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 220 + }, + "end": { + "line": 11, + "column": 33, + "offset": 245 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 136 + }, + "end": { + "line": 8, + "column": 13, + "offset": 145 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varRealInOutFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "REAL", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 26, + "offset": 315 + }, + "end": { + "line": 14, + "column": 30, + "offset": 319 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 8, + "offset": 297 + }, + "end": { + "line": 14, + "column": 24, + "offset": 313 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 278 + }, + "end": { + "line": 13, + "column": 14, + "offset": 288 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntOutputFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 26, + "offset": 374 + }, + "end": { + "line": 17, + "column": 29, + "offset": 377 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 356 + }, + "end": { + "line": 17, + "column": 24, + "offset": 372 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": "Output", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 4, + "offset": 337 + }, + "end": { + "line": 16, + "column": 14, + "offset": 347 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "return_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 31, + "offset": 128 + }, + "end": { + "line": 7, + "column": 34, + "offset": 131 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 4, + "offset": 101 + }, + "end": { + "line": 19, + "column": 16, + "offset": 407 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 3, + "name": "fnThatReturnsTimeOfDay", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varDateTimeInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "DT", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 27, + "offset": 492 + }, + "end": { + "line": 23, + "column": 29, + "offset": 494 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 8, + "offset": 473 + }, + "end": { + "line": 23, + "column": 24, + "offset": 489 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 4, + "offset": 455 + }, + "end": { + "line": 22, + "column": 13, + "offset": 464 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "return_type": { + "Reference": { + "referenced_type": "TOD", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 38, + "offset": 447 + }, + "end": { + "line": 21, + "column": 41, + "offset": 450 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 4, + "offset": 413 + }, + "end": { + "line": 25, + "column": 16, + "offset": 524 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fnThatIsVoid", + "type_name": "fnThatIsVoid", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 83 + }, + "end": { + "line": 4, + "column": 11, + "offset": 78 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 13, + "offset": 14 + }, + "end": { + "line": 1, + "column": 25, + "offset": 26 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 83 + }, + "end": { + "line": 5, + "column": 16, + "offset": 95 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatReturnsInt", + "type_name": "fnThatReturnsInt", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 395 + }, + "end": { + "line": 18, + "column": 11, + "offset": 390 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 395 + }, + "end": { + "line": 19, + "column": 16, + "offset": 407 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatReturnsTimeOfDay", + "type_name": "fnThatReturnsTimeOfDay", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 4, + "offset": 512 + }, + "end": { + "line": 24, + "column": 11, + "offset": 507 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 4, + "offset": 512 + }, + "end": { + "line": 25, + "column": 16, + "offset": 524 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "File": "functions_with_primitive_types.pli" + } + } + ] + }, + "index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": { + "fnthatisvoid": [ + { + "Function": { + "name": "fnThatIsVoid", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 13, + "offset": 14 + }, + "end": { + "line": 1, + "column": 25, + "offset": 26 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthatreturnsint": [ + { + "Function": { + "name": "fnThatReturnsInt", + "return_type": "INT", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthatreturnstimeofday": [ + { + "Function": { + "name": "fnThatReturnsTimeOfDay", + "return_type": "TOD", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "fnthatisvoid": { + "call_name": "fnThatIsVoid", + "type_name": "fnThatIsVoid", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 83 + }, + "end": { + "line": 4, + "column": 11, + "offset": 78 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + "fnthatreturnsint": { + "call_name": "fnThatReturnsInt", + "type_name": "fnThatReturnsInt", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 395 + }, + "end": { + "line": 18, + "column": 11, + "offset": 390 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + "fnthatreturnstimeofday": { + "call_name": "fnThatReturnsTimeOfDay", + "type_name": "fnThatReturnsTimeOfDay", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 4, + "offset": 512 + }, + "end": { + "line": 24, + "column": 11, + "offset": 507 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "__auto_pointer_to_real": [ + { + "name": "__auto_pointer_to_REAL", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_REAL", + "inner_type_name": "REAL", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to_int": [ + { + "name": "__auto_pointer_to_INT", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_INT", + "inner_type_name": "INT", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "fnthatisvoid": [ + { + "name": "fnThatIsVoid", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatIsVoid", + "members": [ + { + "name": "varIntInput", + "qualified_name": "fnThatIsVoid.varIntInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 49 + }, + "end": { + "line": 3, + "column": 19, + "offset": 60 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 13, + "offset": 14 + }, + "end": { + "line": 1, + "column": 25, + "offset": 26 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "fnthatreturnsint": [ + { + "name": "fnThatReturnsInt", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatReturnsInt", + "members": [ + { + "name": "varRealInputToFunc", + "qualified_name": "fnThatReturnsInt.varRealInputToFunc", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "REAL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 154 + }, + "end": { + "line": 9, + "column": 26, + "offset": 172 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + }, + { + "name": "varIntInputToFunc", + "qualified_name": "fnThatReturnsInt.varIntInputToFunc", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 188 + }, + "end": { + "line": 10, + "column": 25, + "offset": 205 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + }, + { + "name": "varDateAndTimeInputToFunc", + "qualified_name": "fnThatReturnsInt.varDateAndTimeInputToFunc", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DATE_AND_TIME", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 220 + }, + "end": { + "line": 11, + "column": 33, + "offset": 245 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + }, + { + "name": "varRealInOutFunc", + "qualified_name": "fnThatReturnsInt.varRealInOutFunc", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_REAL", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 8, + "offset": 297 + }, + "end": { + "line": 14, + "column": 24, + "offset": 313 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + }, + { + "name": "varIntOutputFunc", + "qualified_name": "fnThatReturnsInt.varIntOutputFunc", + "initial_value": null, + "argument_type": { + "ByRef": "Output" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_INT", + "location_in_parent": 4, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 356 + }, + "end": { + "line": 17, + "column": 24, + "offset": 372 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + }, + { + "name": "fnThatReturnsInt", + "qualified_name": "fnThatReturnsInt.fnThatReturnsInt", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 5, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "fnthatreturnstimeofday": [ + { + "name": "fnThatReturnsTimeOfDay", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatReturnsTimeOfDay", + "members": [ + { + "name": "varDateTimeInput", + "qualified_name": "fnThatReturnsTimeOfDay.varDateTimeInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 8, + "offset": 473 + }, + "end": { + "line": 23, + "column": 24, + "offset": 489 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + }, + { + "name": "fnThatReturnsTimeOfDay", + "qualified_name": "fnThatReturnsTimeOfDay.fnThatReturnsTimeOfDay", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "TOD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "unresolvables": [] + }, + "context": { + "sources": { + "functions_with_primitive_types.pli": { + "source": "\n FUNCTION fnThatIsVoid\n VAR_INPUT\n varIntInput: INT;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatReturnsInt: INT\n VAR_INPUT\n varRealInputToFunc: REAL;\n varIntInputToFunc: INT;\n varDateAndTimeInputToFunc: DATE_AND_TIME;\n END_VAR\n VAR_IN_OUT\n varRealInOutFunc: REAL;\n END_VAR\n VAR_OUTPUT\n varIntOutputFunc: INT;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatReturnsTimeOfDay : TOD\n VAR_INPUT\n varDateTimeInput : DT;\n END_VAR\n END_FUNCTION\n ", + "path": "functions_with_primitive_types.pli" + } + }, + "provider": { + "current_id": 58 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_5_functions_with_primitive_types_parsed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_5_functions_with_primitive_types_parsed_content.snap new file mode 100644 index 0000000000..e2b100b0bc --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_5_functions_with_primitive_types_parsed_content.snap @@ -0,0 +1,923 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "parsed_project": { + "units": [ + { + "global_vars": [], + "var_config": [], + "pous": [ + { + "id": 1, + "name": "fnThatIsVoid", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 21, + "offset": 62 + }, + "end": { + "line": 3, + "column": 24, + "offset": 65 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 49 + }, + "end": { + "line": 3, + "column": 19, + "offset": 60 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 4, + "offset": 31 + }, + "end": { + "line": 2, + "column": 13, + "offset": 40 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 5, + "column": 16, + "offset": 95 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 13, + "offset": 14 + }, + "end": { + "line": 1, + "column": 25, + "offset": 26 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 2, + "name": "fnThatReturnsInt", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varRealInputToFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "REAL", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 28, + "offset": 174 + }, + "end": { + "line": 9, + "column": 32, + "offset": 178 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 154 + }, + "end": { + "line": 9, + "column": 26, + "offset": 172 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "name": "varIntInputToFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 27, + "offset": 207 + }, + "end": { + "line": 10, + "column": 30, + "offset": 210 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 188 + }, + "end": { + "line": 10, + "column": 25, + "offset": 205 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "name": "varDateAndTimeInputToFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "DATE_AND_TIME", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 35, + "offset": 247 + }, + "end": { + "line": 11, + "column": 48, + "offset": 260 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 220 + }, + "end": { + "line": 11, + "column": 33, + "offset": 245 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 136 + }, + "end": { + "line": 8, + "column": 13, + "offset": 145 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varRealInOutFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "REAL", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 26, + "offset": 315 + }, + "end": { + "line": 14, + "column": 30, + "offset": 319 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 8, + "offset": 297 + }, + "end": { + "line": 14, + "column": 24, + "offset": 313 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 278 + }, + "end": { + "line": 13, + "column": 14, + "offset": 288 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntOutputFunc", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 26, + "offset": 374 + }, + "end": { + "line": 17, + "column": 29, + "offset": 377 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 8, + "offset": 356 + }, + "end": { + "line": 17, + "column": 24, + "offset": 372 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": "Output", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 4, + "offset": 337 + }, + "end": { + "line": 16, + "column": 14, + "offset": 347 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "return_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 31, + "offset": 128 + }, + "end": { + "line": 7, + "column": 34, + "offset": 131 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 4, + "offset": 101 + }, + "end": { + "line": 19, + "column": 16, + "offset": 407 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 3, + "name": "fnThatReturnsTimeOfDay", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varDateTimeInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "DT", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 27, + "offset": 492 + }, + "end": { + "line": 23, + "column": 29, + "offset": 494 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 8, + "offset": 473 + }, + "end": { + "line": 23, + "column": 24, + "offset": 489 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 4, + "offset": 455 + }, + "end": { + "line": 22, + "column": 13, + "offset": 464 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + ], + "return_type": { + "Reference": { + "referenced_type": "TOD", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 38, + "offset": 447 + }, + "end": { + "line": 21, + "column": 41, + "offset": 450 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 4, + "offset": 413 + }, + "end": { + "line": 25, + "column": 16, + "offset": 524 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fnThatIsVoid", + "type_name": "fnThatIsVoid", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 83 + }, + "end": { + "line": 4, + "column": 11, + "offset": 78 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 13, + "offset": 14 + }, + "end": { + "line": 1, + "column": 25, + "offset": 26 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 83 + }, + "end": { + "line": 5, + "column": 16, + "offset": 95 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatReturnsInt", + "type_name": "fnThatReturnsInt", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 395 + }, + "end": { + "line": 18, + "column": 11, + "offset": 390 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 110 + }, + "end": { + "line": 7, + "column": 29, + "offset": 126 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 395 + }, + "end": { + "line": 19, + "column": 16, + "offset": 407 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatReturnsTimeOfDay", + "type_name": "fnThatReturnsTimeOfDay", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 4, + "offset": 512 + }, + "end": { + "line": 24, + "column": 11, + "offset": 507 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 13, + "offset": 422 + }, + "end": { + "line": 21, + "column": 35, + "offset": 444 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 4, + "offset": 512 + }, + "end": { + "line": 25, + "column": 16, + "offset": 524 + } + } + }, + "file": { + "File": "functions_with_primitive_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "File": "functions_with_primitive_types.pli" + } + } + ] + }, + "context": { + "sources": { + "functions_with_primitive_types.pli": { + "source": "\n FUNCTION fnThatIsVoid\n VAR_INPUT\n varIntInput: INT;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatReturnsInt: INT\n VAR_INPUT\n varRealInputToFunc: REAL;\n varIntInputToFunc: INT;\n varDateAndTimeInputToFunc: DATE_AND_TIME;\n END_VAR\n VAR_IN_OUT\n varRealInOutFunc: REAL;\n END_VAR\n VAR_OUTPUT\n varIntOutputFunc: INT;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatReturnsTimeOfDay : TOD\n VAR_INPUT\n varDateTimeInput : DT;\n END_VAR\n END_FUNCTION\n ", + "path": "functions_with_primitive_types.pli" + } + }, + "provider": { + "current_id": 4 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_6_functions_with_complex_types_annotated_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_6_functions_with_complex_types_annotated_content.snap new file mode 100644 index 0000000000..17a3cf99d5 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_6_functions_with_complex_types_annotated_content.snap @@ -0,0 +1,12852 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "units": [ + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 19, + "name": "fnThatUsesStructWithPrimitiveTypes", + "kind": "Function", + "variable_blocks": [ + { + "access": "Public", + "constant": false, + "retain": false, + "variables": [ + { + "name": "fnThatUsesStructWithPrimitiveTypes", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 49, + "offset": 693 + }, + "end": { + "line": 28, + "column": 73, + "offset": 717 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varStruct", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 19, + "offset": 751 + }, + "end": { + "line": 30, + "column": 43, + "offset": 775 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 8, + "offset": 740 + }, + "end": { + "line": 30, + "column": 17, + "offset": 749 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 29, + "column": 4, + "offset": 722 + }, + "end": { + "line": 29, + "column": 13, + "offset": 731 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": { + "Aggregate": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 49, + "offset": 693 + }, + "end": { + "line": 28, + "column": 73, + "offset": 717 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 4, + "offset": 648 + }, + "end": { + "line": 32, + "column": 16, + "offset": 805 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 24, + "name": "fnThatUsesStructWithComplexTypes", + "kind": "Function", + "variable_blocks": [ + { + "access": "Public", + "constant": false, + "retain": false, + "variables": [ + { + "name": "fnThatUsesStructWithComplexTypes", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 47, + "offset": 854 + }, + "end": { + "line": 34, + "column": 69, + "offset": 876 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varStruct", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 36, + "column": 19, + "offset": 910 + }, + "end": { + "line": 36, + "column": 41, + "offset": 932 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 36, + "column": 8, + "offset": 899 + }, + "end": { + "line": 36, + "column": 17, + "offset": 908 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varEnum", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 37, + "column": 17, + "offset": 951 + }, + "end": { + "line": 37, + "column": 32, + "offset": 966 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 37, + "column": 8, + "offset": 942 + }, + "end": { + "line": 37, + "column": 15, + "offset": 949 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varString", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesStructWithComplexTypes_varString", + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 19, + "offset": 987 + }, + "end": { + "line": 38, + "column": 30, + "offset": 998 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 8, + "offset": 976 + }, + "end": { + "line": 38, + "column": 17, + "offset": 985 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varIntArray", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesStructWithComplexTypes_varIntArray", + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 21, + "offset": 1021 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 8, + "offset": 1008 + }, + "end": { + "line": 39, + "column": 19, + "offset": 1019 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 4, + "offset": 881 + }, + "end": { + "line": 35, + "column": 13, + "offset": 890 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": { + "Aggregate": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 47, + "offset": 854 + }, + "end": { + "line": 34, + "column": 69, + "offset": 876 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 4, + "offset": 811 + }, + "end": { + "line": 41, + "column": 16, + "offset": 1070 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 25, + "name": "fnThatUsesPrimitiveTypesAndReferences", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1153 + }, + "end": { + "line": 45, + "column": 19, + "offset": 1156 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 8, + "offset": 1145 + }, + "end": { + "line": 45, + "column": 14, + "offset": 1151 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varRefToInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 21, + "offset": 1179 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 8, + "offset": 1166 + }, + "end": { + "line": 46, + "column": 19, + "offset": 1177 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varPointerToInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt", + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 25, + "offset": 1222 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 8, + "offset": 1205 + }, + "end": { + "line": 47, + "column": 23, + "offset": 1220 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varRefToDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate", + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 22, + "offset": 1256 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 8, + "offset": 1242 + }, + "end": { + "line": 48, + "column": 20, + "offset": 1254 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varPointerToDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate", + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 26, + "offset": 1301 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 8, + "offset": 1283 + }, + "end": { + "line": 49, + "column": 24, + "offset": 1299 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 44, + "column": 4, + "offset": 1127 + }, + "end": { + "line": 44, + "column": 13, + "offset": 1136 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 4, + "offset": 1076 + }, + "end": { + "line": 51, + "column": 16, + "offset": 1342 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 13, + "offset": 1085 + }, + "end": { + "line": 43, + "column": 50, + "offset": 1122 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 29, + "name": "fnThatHasIntWithRange", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntWithRange", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatHasIntWithRange_varIntWithRange", + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 25, + "offset": 1418 + }, + "end": { + "line": 55, + "column": 35, + "offset": 1428 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 8, + "offset": 1401 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1416 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 4, + "offset": 1383 + }, + "end": { + "line": 54, + "column": 13, + "offset": 1392 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 4, + "offset": 1348 + }, + "end": { + "line": 57, + "column": 16, + "offset": 1458 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 13, + "offset": 1357 + }, + "end": { + "line": 53, + "column": 34, + "offset": 1378 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 30, + "name": "fnThatHasVariadicIntInput", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 61, + "column": 21, + "offset": 1534 + }, + "end": { + "line": 61, + "column": 24, + "offset": 1537 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 61, + "column": 8, + "offset": 1521 + }, + "end": { + "line": 61, + "column": 19, + "offset": 1532 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varVariadicInt", + "data_type_declaration": { + "Definition": { + "data_type": { + "VarArgs": { + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 32, + "offset": 1571 + }, + "end": { + "line": 62, + "column": 35, + "offset": 1574 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "sized": true + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 35, + "offset": 1574 + }, + "end": { + "line": 62, + "column": 38, + "offset": 1577 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasVariadicIntInput" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 8, + "offset": 1547 + }, + "end": { + "line": 62, + "column": 22, + "offset": 1561 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 4, + "offset": 1503 + }, + "end": { + "line": 60, + "column": 13, + "offset": 1512 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 4, + "offset": 1464 + }, + "end": { + "line": 64, + "column": 16, + "offset": 1607 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 13, + "offset": 1473 + }, + "end": { + "line": 59, + "column": 38, + "offset": 1498 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 31, + "name": "fnThatHasVariadicStringInput", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 21, + "offset": 1686 + }, + "end": { + "line": 68, + "column": 24, + "offset": 1689 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 8, + "offset": 1673 + }, + "end": { + "line": 68, + "column": 19, + "offset": 1684 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varVariadicString", + "data_type_declaration": { + "Definition": { + "data_type": { + "VarArgs": { + "referenced_type": { + "Reference": { + "referenced_type": "STRING", + "location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 35, + "offset": 1726 + }, + "end": { + "line": 69, + "column": 41, + "offset": 1732 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "sized": true + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 41, + "offset": 1732 + }, + "end": { + "line": 69, + "column": 44, + "offset": 1735 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasVariadicStringInput" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 8, + "offset": 1699 + }, + "end": { + "line": 69, + "column": 25, + "offset": 1716 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 67, + "column": 4, + "offset": 1655 + }, + "end": { + "line": 67, + "column": 13, + "offset": 1664 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 4, + "offset": 1613 + }, + "end": { + "line": 71, + "column": 16, + "offset": 1765 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 13, + "offset": 1622 + }, + "end": { + "line": 66, + "column": 41, + "offset": 1650 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 32, + "name": "fnThatHasVariadicComplexTypeInput", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 21, + "offset": 1849 + }, + "end": { + "line": 75, + "column": 24, + "offset": 1852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 8, + "offset": 1836 + }, + "end": { + "line": 75, + "column": 19, + "offset": 1847 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varVariadicStruct", + "data_type_declaration": { + "Definition": { + "data_type": { + "VarArgs": { + "referenced_type": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 35, + "offset": 1889 + }, + "end": { + "line": 76, + "column": 59, + "offset": 1913 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "sized": true + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 59, + "offset": 1913 + }, + "end": { + "line": 76, + "column": 62, + "offset": 1916 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasVariadicComplexTypeInput" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 8, + "offset": 1862 + }, + "end": { + "line": 76, + "column": 25, + "offset": 1879 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 4, + "offset": 1818 + }, + "end": { + "line": 74, + "column": 13, + "offset": 1827 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 4, + "offset": 1771 + }, + "end": { + "line": 78, + "column": 16, + "offset": 1946 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 13, + "offset": 1780 + }, + "end": { + "line": 73, + "column": 46, + "offset": 1813 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fnThatUsesStructWithPrimitiveTypes", + "type_name": "fnThatUsesStructWithPrimitiveTypes", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 4, + "offset": 793 + }, + "end": { + "line": 31, + "column": 11, + "offset": 788 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 4, + "offset": 793 + }, + "end": { + "line": 32, + "column": 16, + "offset": 805 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatUsesStructWithComplexTypes", + "type_name": "fnThatUsesStructWithComplexTypes", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 41, + "column": 4, + "offset": 1058 + }, + "end": { + "line": 40, + "column": 11, + "offset": 1053 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 41, + "column": 4, + "offset": 1058 + }, + "end": { + "line": 41, + "column": 16, + "offset": 1070 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatUsesPrimitiveTypesAndReferences", + "type_name": "fnThatUsesPrimitiveTypesAndReferences", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 4, + "offset": 1330 + }, + "end": { + "line": 50, + "column": 11, + "offset": 1325 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 13, + "offset": 1085 + }, + "end": { + "line": 43, + "column": 50, + "offset": 1122 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 4, + "offset": 1330 + }, + "end": { + "line": 51, + "column": 16, + "offset": 1342 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasIntWithRange", + "type_name": "fnThatHasIntWithRange", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 4, + "offset": 1446 + }, + "end": { + "line": 56, + "column": 11, + "offset": 1441 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 13, + "offset": 1357 + }, + "end": { + "line": 53, + "column": 34, + "offset": 1378 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 4, + "offset": 1446 + }, + "end": { + "line": 57, + "column": 16, + "offset": 1458 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasVariadicIntInput", + "type_name": "fnThatHasVariadicIntInput", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 64, + "column": 4, + "offset": 1595 + }, + "end": { + "line": 63, + "column": 11, + "offset": 1590 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 13, + "offset": 1473 + }, + "end": { + "line": 59, + "column": 38, + "offset": 1498 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 64, + "column": 4, + "offset": 1595 + }, + "end": { + "line": 64, + "column": 16, + "offset": 1607 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasVariadicStringInput", + "type_name": "fnThatHasVariadicStringInput", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 71, + "column": 4, + "offset": 1753 + }, + "end": { + "line": 70, + "column": 11, + "offset": 1748 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 13, + "offset": 1622 + }, + "end": { + "line": 66, + "column": 41, + "offset": 1650 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 71, + "column": 4, + "offset": 1753 + }, + "end": { + "line": 71, + "column": 16, + "offset": 1765 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasVariadicComplexTypeInput", + "type_name": "fnThatHasVariadicComplexTypeInput", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 78, + "column": 4, + "offset": 1934 + }, + "end": { + "line": 77, + "column": 11, + "offset": 1929 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 13, + "offset": 1780 + }, + "end": { + "line": 73, + "column": 46, + "offset": 1813 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 78, + "column": 4, + "offset": 1934 + }, + "end": { + "line": 78, + "column": 16, + "offset": 1946 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 122, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 123, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 124, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 125, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 126, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 127, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 128, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 129, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 130, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + ] + }, + "id": 131, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithPrimitiveTypes", + "variables": [ + { + "name": "Field1", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 21, + "offset": 203 + }, + "end": { + "line": 10, + "column": 25, + "offset": 207 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 194 + }, + "end": { + "line": 10, + "column": 18, + "offset": 200 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "Field2", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 21, + "offset": 230 + }, + "end": { + "line": 11, + "column": 24, + "offset": 233 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 221 + }, + "end": { + "line": 11, + "column": 18, + "offset": 227 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "Field3", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 21, + "offset": 256 + }, + "end": { + "line": 12, + "column": 25, + "offset": 260 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 12, + "offset": 247 + }, + "end": { + "line": 12, + "column": 18, + "offset": 253 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithComplexTypes", + "variables": [ + { + "name": "byteField", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 24, + "offset": 367 + }, + "end": { + "line": 18, + "column": 28, + "offset": 371 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 12, + "offset": 355 + }, + "end": { + "line": 18, + "column": 21, + "offset": 364 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "intField", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 23, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 399 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 12, + "offset": 385 + }, + "end": { + "line": 19, + "column": 20, + "offset": 393 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "dIntField", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 24, + "offset": 425 + }, + "end": { + "line": 20, + "column": 28, + "offset": 429 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 12, + "offset": 413 + }, + "end": { + "line": 20, + "column": 21, + "offset": 422 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "stringField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_stringField", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 12, + "offset": 443 + }, + "end": { + "line": 21, + "column": 23, + "offset": 454 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "wStringField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_wStringField", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 12, + "offset": 482 + }, + "end": { + "line": 22, + "column": 24, + "offset": 494 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "complexEnumTypeField", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 35, + "offset": 547 + }, + "end": { + "line": 23, + "column": 50, + "offset": 562 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 12, + "offset": 524 + }, + "end": { + "line": 23, + "column": 32, + "offset": 544 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "intArrayField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_intArrayField", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 12, + "offset": 576 + }, + "end": { + "line": 24, + "column": 25, + "offset": 589 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__fnThatUsesStructWithComplexTypes_varString", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 200 + } + }, + "id": 20, + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 26, + "offset": 994 + }, + "end": { + "line": 38, + "column": 29, + "offset": 997 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 19, + "offset": 987 + }, + "end": { + "line": 38, + "column": 30, + "offset": 998 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesStructWithComplexTypes" + }, + { + "data_type": { + "ArrayType": { + "name": "__fnThatUsesStructWithComplexTypes_varIntArray", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 21, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 27, + "offset": 1027 + }, + "end": { + "line": 39, + "column": 28, + "offset": 1028 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 14 + } + }, + "id": 22, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 30, + "offset": 1030 + }, + "end": { + "line": 39, + "column": 32, + "offset": 1032 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 23, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 27, + "offset": 1027 + }, + "end": { + "line": 39, + "column": 32, + "offset": 1032 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 37, + "offset": 1037 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 21, + "offset": 1021 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesStructWithComplexTypes" + }, + { + "data_type": { + "PointerType": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt", + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 34, + "offset": 1192 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 21, + "offset": 1179 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "data_type": { + "PointerType": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt", + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 32, + "offset": 1229 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 25, + "offset": 1222 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "data_type": { + "PointerType": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate", + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 35, + "offset": 1269 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 22, + "offset": 1256 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "data_type": { + "PointerType": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate", + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 33, + "offset": 1308 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 26, + "offset": 1301 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "data_type": { + "SubRangeType": { + "name": "__fnThatHasIntWithRange_varIntWithRange", + "referenced_type": "INT", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 26, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 29, + "offset": 1422 + }, + "end": { + "line": 55, + "column": 30, + "offset": 1423 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 99 + } + }, + "id": 27, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 32, + "offset": 1425 + }, + "end": { + "line": 55, + "column": 34, + "offset": 1427 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 28, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 29, + "offset": 1422 + }, + "end": { + "line": 55, + "column": 34, + "offset": 1427 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 25, + "offset": 1418 + }, + "end": { + "line": 55, + "column": 35, + "offset": 1428 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasIntWithRange" + }, + { + "data_type": { + "StringType": { + "name": "__StructWithComplexTypes_stringField", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 255 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 33, + "offset": 464 + }, + "end": { + "line": 21, + "column": 36, + "offset": 467 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__StructWithComplexTypes_wStringField", + "is_wide": true, + "size": { + "stmt": { + "Literal": { + "Integer": 6000 + } + }, + "id": 15, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 35, + "offset": 505 + }, + "end": { + "line": 22, + "column": 39, + "offset": 509 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "__StructWithComplexTypes_intArrayField", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 34, + "offset": 598 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 9 + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 36, + "offset": 600 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 42, + "offset": 606 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "dependencies": [ + { + "Datatype": "fnThatUsesStructWithPrimitiveTypes" + }, + { + "Datatype": "StructWithPrimitiveTypes" + }, + { + "Datatype": "BYTE" + }, + { + "Datatype": "INT" + }, + { + "Datatype": "DINT" + }, + { + "Datatype": "fnThatUsesStructWithComplexTypes" + }, + { + "Datatype": "StructWithComplexTypes" + }, + { + "Datatype": "__StructWithComplexTypes_stringField" + }, + { + "Datatype": "STRING" + }, + { + "Datatype": "__StructWithComplexTypes_wStringField" + }, + { + "Datatype": "WSTRING" + }, + { + "Datatype": "ComplexEnumType" + }, + { + "Datatype": "__StructWithComplexTypes_intArrayField" + }, + { + "Datatype": "__fnThatUsesStructWithComplexTypes_varString" + }, + { + "Datatype": "__fnThatUsesStructWithComplexTypes_varIntArray" + }, + { + "Datatype": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "Datatype": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt" + }, + { + "Datatype": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt" + }, + { + "Datatype": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate" + }, + { + "Datatype": "DATE" + }, + { + "Datatype": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate" + }, + { + "Datatype": "fnThatHasIntWithRange" + }, + { + "Datatype": "__fnThatHasIntWithRange_varIntWithRange" + }, + { + "Datatype": "fnThatHasVariadicIntInput" + }, + { + "Datatype": "fnThatHasVariadicStringInput" + }, + { + "Datatype": "fnThatHasVariadicComplexTypeInput" + }, + { + "Variable": "ComplexEnumType.orange" + }, + { + "Variable": "ComplexEnumType.yellow" + }, + { + "Variable": "ComplexEnumType.purple" + }, + { + "Datatype": "__auto_pointer_to_StructWithPrimitiveTypes" + }, + { + "Datatype": "__auto_pointer_to_StructWithComplexTypes" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + }, + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 119, + "name": "__init_structwithprimitivetypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 120, + "name": "__init_structwithcomplextypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 117, + "name": "__user_init_StructWithPrimitiveTypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 118, + "name": "__user_init_StructWithComplexTypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init_structwithprimitivetypes", + "type_name": "__init_structwithprimitivetypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_structwithcomplextypes", + "type_name": "__init_structwithcomplextypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_StructWithPrimitiveTypes", + "type_name": "__user_init_StructWithPrimitiveTypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_StructWithComplexTypes", + "type_name": "__user_init_StructWithComplexTypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__initializers" + } + }, + "dependencies": [ + { + "Datatype": "__init_structwithprimitivetypes" + }, + { + "Datatype": "StructWithPrimitiveTypes" + }, + { + "Datatype": "BYTE" + }, + { + "Datatype": "INT" + }, + { + "Datatype": "DINT" + }, + { + "Datatype": "__init_structwithcomplextypes" + }, + { + "Datatype": "StructWithComplexTypes" + }, + { + "Datatype": "__StructWithComplexTypes_stringField" + }, + { + "Datatype": "STRING" + }, + { + "Datatype": "__StructWithComplexTypes_wStringField" + }, + { + "Datatype": "WSTRING" + }, + { + "Datatype": "ComplexEnumType" + }, + { + "Datatype": "__StructWithComplexTypes_intArrayField" + }, + { + "Datatype": "__user_init_StructWithPrimitiveTypes" + }, + { + "Datatype": "__user_init_StructWithComplexTypes" + }, + { + "Datatype": "__auto_pointer_to_StructWithPrimitiveTypes" + }, + { + "Datatype": "__auto_pointer_to_StructWithComplexTypes" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + }, + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 121, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + }, + "dependencies": [ + { + "Datatype": "__init___TestProject" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + } + ], + "index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": { + "__structwithprimitivetypes__init": [ + { + "name": "__StructWithPrimitiveTypes__init", + "qualified_name": "__StructWithPrimitiveTypes__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "StructWithPrimitiveTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "__structwithcomplextypes__init": [ + { + "name": "__StructWithComplexTypes__init", + "qualified_name": "__StructWithComplexTypes__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "StructWithComplexTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "enum_global_variables": { + "inner_map": { + "orange": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "yellow": [ + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "purple": [ + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "pous": { + "inner_map": { + "fnthatusesstructwithprimitivetypes": [ + { + "Function": { + "name": "fnThatUsesStructWithPrimitiveTypes", + "return_type": "StructWithPrimitiveTypes", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthatusesstructwithcomplextypes": [ + { + "Function": { + "name": "fnThatUsesStructWithComplexTypes", + "return_type": "StructWithComplexTypes", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthatusesprimitivetypesandreferences": [ + { + "Function": { + "name": "fnThatUsesPrimitiveTypesAndReferences", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 13, + "offset": 1085 + }, + "end": { + "line": 43, + "column": 50, + "offset": 1122 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthathasintwithrange": [ + { + "Function": { + "name": "fnThatHasIntWithRange", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 13, + "offset": 1357 + }, + "end": { + "line": 53, + "column": 34, + "offset": 1378 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthathasvariadicintinput": [ + { + "Function": { + "name": "fnThatHasVariadicIntInput", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 13, + "offset": 1473 + }, + "end": { + "line": 59, + "column": 38, + "offset": 1498 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthathasvariadicstringinput": [ + { + "Function": { + "name": "fnThatHasVariadicStringInput", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 13, + "offset": 1622 + }, + "end": { + "line": 66, + "column": 41, + "offset": 1650 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthathasvariadiccomplextypeinput": [ + { + "Function": { + "name": "fnThatHasVariadicComplexTypeInput", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 13, + "offset": 1780 + }, + "end": { + "line": 73, + "column": 46, + "offset": 1813 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init_structwithprimitivetypes": [ + { + "Function": { + "name": "__init_structwithprimitivetypes", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init_structwithcomplextypes": [ + { + "Function": { + "name": "__init_structwithcomplextypes", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init_structwithprimitivetypes": [ + { + "Function": { + "name": "__user_init_StructWithPrimitiveTypes", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init_structwithcomplextypes": [ + { + "Function": { + "name": "__user_init_StructWithComplexTypes", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init___testproject": [ + { + "Function": { + "name": "__init___TestProject", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "fnthatusesstructwithprimitivetypes": { + "call_name": "fnThatUsesStructWithPrimitiveTypes", + "type_name": "fnThatUsesStructWithPrimitiveTypes", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 4, + "offset": 793 + }, + "end": { + "line": 31, + "column": 11, + "offset": 788 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "fnthatusesstructwithcomplextypes": { + "call_name": "fnThatUsesStructWithComplexTypes", + "type_name": "fnThatUsesStructWithComplexTypes", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 41, + "column": 4, + "offset": 1058 + }, + "end": { + "line": 40, + "column": 11, + "offset": 1053 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "fnthatusesprimitivetypesandreferences": { + "call_name": "fnThatUsesPrimitiveTypesAndReferences", + "type_name": "fnThatUsesPrimitiveTypesAndReferences", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 4, + "offset": 1330 + }, + "end": { + "line": 50, + "column": 11, + "offset": 1325 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "fnthathasintwithrange": { + "call_name": "fnThatHasIntWithRange", + "type_name": "fnThatHasIntWithRange", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 4, + "offset": 1446 + }, + "end": { + "line": 56, + "column": 11, + "offset": 1441 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "fnthathasvariadicintinput": { + "call_name": "fnThatHasVariadicIntInput", + "type_name": "fnThatHasVariadicIntInput", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 64, + "column": 4, + "offset": 1595 + }, + "end": { + "line": 63, + "column": 11, + "offset": 1590 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "fnthathasvariadicstringinput": { + "call_name": "fnThatHasVariadicStringInput", + "type_name": "fnThatHasVariadicStringInput", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 71, + "column": 4, + "offset": 1753 + }, + "end": { + "line": 70, + "column": 11, + "offset": 1748 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "fnthathasvariadiccomplextypeinput": { + "call_name": "fnThatHasVariadicComplexTypeInput", + "type_name": "fnThatHasVariadicComplexTypeInput", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 78, + "column": 4, + "offset": 1934 + }, + "end": { + "line": 77, + "column": 11, + "offset": 1929 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "__init_structwithprimitivetypes": { + "call_name": "__init_structwithprimitivetypes", + "type_name": "__init_structwithprimitivetypes", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + } + }, + "__init_structwithcomplextypes": { + "call_name": "__init_structwithcomplextypes", + "type_name": "__init_structwithcomplextypes", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + } + }, + "__user_init_structwithprimitivetypes": { + "call_name": "__user_init_StructWithPrimitiveTypes", + "type_name": "__user_init_StructWithPrimitiveTypes", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__user_init_structwithcomplextypes": { + "call_name": "__user_init_StructWithComplexTypes", + "type_name": "__user_init_StructWithComplexTypes", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__init___testproject": { + "call_name": "__init___TestProject", + "type_name": "__init___TestProject", + "associated_class": null, + "implementation_type": "ProjectInit", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "complexenumtype": [ + { + "name": "ComplexEnumType", + "initial_value": [ + 0, + 0 + ], + "information": { + "Enum": { + "name": "ComplexEnumType", + "referenced_type": "DINT", + "variants": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "structwithprimitivetypes": [ + { + "name": "StructWithPrimitiveTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "StructWithPrimitiveTypes", + "members": [ + { + "name": "Field1", + "qualified_name": "StructWithPrimitiveTypes.Field1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BYTE", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 194 + }, + "end": { + "line": 10, + "column": 18, + "offset": 200 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "Field2", + "qualified_name": "StructWithPrimitiveTypes.Field2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 221 + }, + "end": { + "line": 11, + "column": 18, + "offset": 227 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "Field3", + "qualified_name": "StructWithPrimitiveTypes.Field3", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 12, + "offset": 247 + }, + "end": { + "line": 12, + "column": 18, + "offset": 253 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "structwithcomplextypes": [ + { + "name": "StructWithComplexTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "StructWithComplexTypes", + "members": [ + { + "name": "byteField", + "qualified_name": "StructWithComplexTypes.byteField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BYTE", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 12, + "offset": 355 + }, + "end": { + "line": 18, + "column": 21, + "offset": 364 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "intField", + "qualified_name": "StructWithComplexTypes.intField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 12, + "offset": 385 + }, + "end": { + "line": 19, + "column": 20, + "offset": 393 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "dIntField", + "qualified_name": "StructWithComplexTypes.dIntField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 12, + "offset": 413 + }, + "end": { + "line": 20, + "column": 21, + "offset": 422 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "stringField", + "qualified_name": "StructWithComplexTypes.stringField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__StructWithComplexTypes_stringField", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 12, + "offset": 443 + }, + "end": { + "line": 21, + "column": 23, + "offset": 454 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "wStringField", + "qualified_name": "StructWithComplexTypes.wStringField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__StructWithComplexTypes_wStringField", + "location_in_parent": 4, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 12, + "offset": 482 + }, + "end": { + "line": 22, + "column": 24, + "offset": 494 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "complexEnumTypeField", + "qualified_name": "StructWithComplexTypes.complexEnumTypeField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 5, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 12, + "offset": 524 + }, + "end": { + "line": 23, + "column": 32, + "offset": 544 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "intArrayField", + "qualified_name": "StructWithComplexTypes.intArrayField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__StructWithComplexTypes_intArrayField", + "location_in_parent": 6, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 12, + "offset": 576 + }, + "end": { + "line": 24, + "column": 25, + "offset": 589 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthatusesstructwithcomplextypes_varstring": [ + { + "name": "__fnThatUsesStructWithComplexTypes_varString", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 201 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 19, + "offset": 987 + }, + "end": { + "line": 38, + "column": 30, + "offset": 998 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthatusesstructwithcomplextypes_varintarray": [ + { + "name": "__fnThatUsesStructWithComplexTypes_varIntArray", + "initial_value": null, + "information": { + "Array": { + "name": "__fnThatUsesStructWithComplexTypes_varIntArray", + "inner_type_name": "INT", + "dimensions": [ + { + "start_offset": { + "ConstExpression": [ + 3, + 0 + ] + }, + "end_offset": { + "ConstExpression": [ + 4, + 0 + ] + } + } + ] + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 21, + "offset": 1021 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthatusesprimitivetypesandreferences_varreftoint": [ + { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt", + "initial_value": null, + "information": { + "Pointer": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt", + "inner_type_name": "INT", + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 21, + "offset": 1179 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthatusesprimitivetypesandreferences_varpointertoint": [ + { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt", + "initial_value": null, + "information": { + "Pointer": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt", + "inner_type_name": "INT", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 25, + "offset": 1222 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthatusesprimitivetypesandreferences_varreftodate": [ + { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate", + "initial_value": null, + "information": { + "Pointer": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate", + "inner_type_name": "DATE", + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 22, + "offset": 1256 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthatusesprimitivetypesandreferences_varpointertodate": [ + { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate", + "initial_value": null, + "information": { + "Pointer": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate", + "inner_type_name": "DATE", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 26, + "offset": 1301 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthathasintwithrange_varintwithrange": [ + { + "name": "__fnThatHasIntWithRange_varIntWithRange", + "initial_value": null, + "information": { + "SubRange": { + "name": "__fnThatHasIntWithRange_varIntWithRange", + "referenced_type": "INT", + "sub_range": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 26, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 29, + "offset": 1422 + }, + "end": { + "line": 55, + "column": 30, + "offset": 1423 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 99 + } + }, + "id": 27, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 32, + "offset": 1425 + }, + "end": { + "line": 55, + "column": 34, + "offset": 1427 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 25, + "offset": 1418 + }, + "end": { + "line": 55, + "column": 35, + "offset": 1428 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__structwithcomplextypes_stringfield": [ + { + "name": "__StructWithComplexTypes_stringField", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 256 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__structwithcomplextypes_wstringfield": [ + { + "name": "__StructWithComplexTypes_wStringField", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 6001 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__structwithcomplextypes_intarrayfield": [ + { + "name": "__StructWithComplexTypes_intArrayField", + "initial_value": null, + "information": { + "Array": { + "name": "__StructWithComplexTypes_intArrayField", + "inner_type_name": "INT", + "dimensions": [ + { + "start_offset": { + "ConstExpression": [ + 5, + 0 + ] + }, + "end_offset": { + "ConstExpression": [ + 6, + 0 + ] + } + } + ] + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__auto_pointer_to_structwithprimitivetypes": [ + { + "name": "__auto_pointer_to_StructWithPrimitiveTypes", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_StructWithPrimitiveTypes", + "inner_type_name": "StructWithPrimitiveTypes", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to_structwithcomplextypes": [ + { + "name": "__auto_pointer_to_StructWithComplexTypes", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_StructWithComplexTypes", + "inner_type_name": "StructWithComplexTypes", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "fnthatusesstructwithprimitivetypes": [ + { + "name": "fnThatUsesStructWithPrimitiveTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatUsesStructWithPrimitiveTypes", + "members": [ + { + "name": "fnThatUsesStructWithPrimitiveTypes", + "qualified_name": "fnThatUsesStructWithPrimitiveTypes.fnThatUsesStructWithPrimitiveTypes", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_StructWithPrimitiveTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varStruct", + "qualified_name": "fnThatUsesStructWithPrimitiveTypes.varStruct", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "StructWithPrimitiveTypes", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 8, + "offset": 740 + }, + "end": { + "line": 30, + "column": 17, + "offset": 749 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "fnthatusesstructwithcomplextypes": [ + { + "name": "fnThatUsesStructWithComplexTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatUsesStructWithComplexTypes", + "members": [ + { + "name": "fnThatUsesStructWithComplexTypes", + "qualified_name": "fnThatUsesStructWithComplexTypes.fnThatUsesStructWithComplexTypes", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_StructWithComplexTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varStruct", + "qualified_name": "fnThatUsesStructWithComplexTypes.varStruct", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "StructWithComplexTypes", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 36, + "column": 8, + "offset": 899 + }, + "end": { + "line": 36, + "column": 17, + "offset": 908 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varEnum", + "qualified_name": "fnThatUsesStructWithComplexTypes.varEnum", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 37, + "column": 8, + "offset": 942 + }, + "end": { + "line": 37, + "column": 15, + "offset": 949 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varString", + "qualified_name": "fnThatUsesStructWithComplexTypes.varString", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatUsesStructWithComplexTypes_varString", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 8, + "offset": 976 + }, + "end": { + "line": 38, + "column": 17, + "offset": 985 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varIntArray", + "qualified_name": "fnThatUsesStructWithComplexTypes.varIntArray", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatUsesStructWithComplexTypes_varIntArray", + "location_in_parent": 4, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 8, + "offset": 1008 + }, + "end": { + "line": 39, + "column": 19, + "offset": 1019 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "fnthatusesprimitivetypesandreferences": [ + { + "name": "fnThatUsesPrimitiveTypesAndReferences", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatUsesPrimitiveTypesAndReferences", + "members": [ + { + "name": "varInt", + "qualified_name": "fnThatUsesPrimitiveTypesAndReferences.varInt", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 8, + "offset": 1145 + }, + "end": { + "line": 45, + "column": 14, + "offset": 1151 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varRefToInt", + "qualified_name": "fnThatUsesPrimitiveTypesAndReferences.varRefToInt", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 8, + "offset": 1166 + }, + "end": { + "line": 46, + "column": 19, + "offset": 1177 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varPointerToInt", + "qualified_name": "fnThatUsesPrimitiveTypesAndReferences.varPointerToInt", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 8, + "offset": 1205 + }, + "end": { + "line": 47, + "column": 23, + "offset": 1220 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varRefToDate", + "qualified_name": "fnThatUsesPrimitiveTypesAndReferences.varRefToDate", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 8, + "offset": 1242 + }, + "end": { + "line": 48, + "column": 20, + "offset": 1254 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varPointerToDate", + "qualified_name": "fnThatUsesPrimitiveTypesAndReferences.varPointerToDate", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate", + "location_in_parent": 4, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 8, + "offset": 1283 + }, + "end": { + "line": 49, + "column": 24, + "offset": 1299 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 13, + "offset": 1085 + }, + "end": { + "line": 43, + "column": 50, + "offset": 1122 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "fnthathasintwithrange": [ + { + "name": "fnThatHasIntWithRange", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatHasIntWithRange", + "members": [ + { + "name": "varIntWithRange", + "qualified_name": "fnThatHasIntWithRange.varIntWithRange", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatHasIntWithRange_varIntWithRange", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 8, + "offset": 1401 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1416 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 13, + "offset": 1357 + }, + "end": { + "line": 53, + "column": 34, + "offset": 1378 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "fnthathasvariadicintinput": [ + { + "name": "fnThatHasVariadicIntInput", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatHasVariadicIntInput", + "members": [ + { + "name": "varIntInput", + "qualified_name": "fnThatHasVariadicIntInput.varIntInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 61, + "column": 8, + "offset": 1521 + }, + "end": { + "line": 61, + "column": 19, + "offset": 1532 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varVariadicInt", + "qualified_name": "fnThatHasVariadicIntInput.varVariadicInt", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 8, + "offset": 1547 + }, + "end": { + "line": 62, + "column": 22, + "offset": 1561 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": { + "Sized": "INT" + } + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 13, + "offset": 1473 + }, + "end": { + "line": 59, + "column": 38, + "offset": 1498 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "fnthathasvariadicstringinput": [ + { + "name": "fnThatHasVariadicStringInput", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatHasVariadicStringInput", + "members": [ + { + "name": "varIntInput", + "qualified_name": "fnThatHasVariadicStringInput.varIntInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 8, + "offset": 1673 + }, + "end": { + "line": 68, + "column": 19, + "offset": 1684 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varVariadicString", + "qualified_name": "fnThatHasVariadicStringInput.varVariadicString", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "STRING", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 8, + "offset": 1699 + }, + "end": { + "line": 69, + "column": 25, + "offset": 1716 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": { + "Sized": "STRING" + } + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 13, + "offset": 1622 + }, + "end": { + "line": 66, + "column": 41, + "offset": 1650 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "fnthathasvariadiccomplextypeinput": [ + { + "name": "fnThatHasVariadicComplexTypeInput", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatHasVariadicComplexTypeInput", + "members": [ + { + "name": "varIntInput", + "qualified_name": "fnThatHasVariadicComplexTypeInput.varIntInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 8, + "offset": 1836 + }, + "end": { + "line": 75, + "column": 19, + "offset": 1847 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varVariadicStruct", + "qualified_name": "fnThatHasVariadicComplexTypeInput.varVariadicStruct", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "StructWithPrimitiveTypes", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 8, + "offset": 1862 + }, + "end": { + "line": 76, + "column": 25, + "offset": 1879 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": { + "Sized": "StructWithPrimitiveTypes" + } + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 13, + "offset": 1780 + }, + "end": { + "line": 73, + "column": 46, + "offset": 1813 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__init_structwithprimitivetypes": [ + { + "name": "__init_structwithprimitivetypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__init_structwithprimitivetypes", + "members": [ + { + "name": "self", + "qualified_name": "__init_structwithprimitivetypes.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_StructWithPrimitiveTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + } + } + ], + "__init_structwithcomplextypes": [ + { + "name": "__init_structwithcomplextypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__init_structwithcomplextypes", + "members": [ + { + "name": "self", + "qualified_name": "__init_structwithcomplextypes.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_StructWithComplexTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + } + } + ], + "__user_init_structwithprimitivetypes": [ + { + "name": "__user_init_StructWithPrimitiveTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init_StructWithPrimitiveTypes", + "members": [ + { + "name": "self", + "qualified_name": "__user_init_StructWithPrimitiveTypes.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_StructWithPrimitiveTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__user_init_structwithcomplextypes": [ + { + "name": "__user_init_StructWithComplexTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init_StructWithComplexTypes", + "members": [ + { + "name": "self", + "qualified_name": "__user_init_StructWithComplexTypes.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_StructWithComplexTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__init___testproject": [ + { + "name": "__init___TestProject", + "initial_value": null, + "information": { + "Struct": { + "name": "__init___TestProject", + "members": [], + "source": { + "Pou": "ProjectInit" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 21, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 27, + "offset": 1027 + }, + "end": { + "line": 39, + "column": 28, + "offset": 1028 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 14 + } + }, + "id": 22, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 30, + "offset": 1030 + }, + "end": { + "line": 39, + "column": 32, + "offset": 1032 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 34, + "offset": 598 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 9 + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 36, + "offset": 600 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "annotations": { + "annotation_map": { + "type_map": { + "3": { + "Value": { + "resulting_type": "DINT" + } + }, + "123": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.orange", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "122": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.orange", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "7": { + "Value": { + "resulting_type": "DINT" + } + }, + "126": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.yellow", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "125": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.yellow", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "11": { + "Value": { + "resulting_type": "DINT" + } + }, + "129": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.purple", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "128": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.purple", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "26": { + "Value": { + "resulting_type": "DINT" + } + }, + "27": { + "Value": { + "resulting_type": "DINT" + } + } + }, + "type_hint_map": { + "3": { + "Value": { + "resulting_type": "ComplexEnumType" + } + }, + "7": { + "Value": { + "resulting_type": "ComplexEnumType" + } + }, + "11": { + "Value": { + "resulting_type": "ComplexEnumType" + } + }, + "26": { + "Value": { + "resulting_type": "INT" + } + }, + "27": { + "Value": { + "resulting_type": "INT" + } + } + }, + "generic_nature_map": {}, + "hidden_function_calls": {}, + "new_index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": {} + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": {}, + "type_index": { + "types": { + "inner_map": {} + }, + "pou_types": { + "inner_map": {} + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + } + }, + "bool_id": 154, + "bool_annotation": { + "Value": { + "resulting_type": "BOOL" + } + } + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_6_functions_with_complex_types_compilation_units.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_6_functions_with_complex_types_compilation_units.snap new file mode 100644 index 0000000000..37962d5788 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_6_functions_with_complex_types_compilation_units.snap @@ -0,0 +1,4538 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +[ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 19, + "name": "fnThatUsesStructWithPrimitiveTypes", + "kind": "Function", + "variable_blocks": [ + { + "access": "Public", + "constant": false, + "retain": false, + "variables": [ + { + "name": "fnThatUsesStructWithPrimitiveTypes", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 49, + "offset": 693 + }, + "end": { + "line": 28, + "column": 73, + "offset": 717 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varStruct", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 19, + "offset": 751 + }, + "end": { + "line": 30, + "column": 43, + "offset": 775 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 8, + "offset": 740 + }, + "end": { + "line": 30, + "column": 17, + "offset": 749 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 29, + "column": 4, + "offset": 722 + }, + "end": { + "line": 29, + "column": 13, + "offset": 731 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": { + "Aggregate": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 49, + "offset": 693 + }, + "end": { + "line": 28, + "column": 73, + "offset": 717 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 4, + "offset": 648 + }, + "end": { + "line": 32, + "column": 16, + "offset": 805 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 24, + "name": "fnThatUsesStructWithComplexTypes", + "kind": "Function", + "variable_blocks": [ + { + "access": "Public", + "constant": false, + "retain": false, + "variables": [ + { + "name": "fnThatUsesStructWithComplexTypes", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 47, + "offset": 854 + }, + "end": { + "line": 34, + "column": 69, + "offset": 876 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varStruct", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 36, + "column": 19, + "offset": 910 + }, + "end": { + "line": 36, + "column": 41, + "offset": 932 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 36, + "column": 8, + "offset": 899 + }, + "end": { + "line": 36, + "column": 17, + "offset": 908 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varEnum", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 37, + "column": 17, + "offset": 951 + }, + "end": { + "line": 37, + "column": 32, + "offset": 966 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 37, + "column": 8, + "offset": 942 + }, + "end": { + "line": 37, + "column": 15, + "offset": 949 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varString", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesStructWithComplexTypes_varString", + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 19, + "offset": 987 + }, + "end": { + "line": 38, + "column": 30, + "offset": 998 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 8, + "offset": 976 + }, + "end": { + "line": 38, + "column": 17, + "offset": 985 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varIntArray", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesStructWithComplexTypes_varIntArray", + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 21, + "offset": 1021 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 8, + "offset": 1008 + }, + "end": { + "line": 39, + "column": 19, + "offset": 1019 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 4, + "offset": 881 + }, + "end": { + "line": 35, + "column": 13, + "offset": 890 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": { + "Aggregate": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 47, + "offset": 854 + }, + "end": { + "line": 34, + "column": 69, + "offset": 876 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 4, + "offset": 811 + }, + "end": { + "line": 41, + "column": 16, + "offset": 1070 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 25, + "name": "fnThatUsesPrimitiveTypesAndReferences", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1153 + }, + "end": { + "line": 45, + "column": 19, + "offset": 1156 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 8, + "offset": 1145 + }, + "end": { + "line": 45, + "column": 14, + "offset": 1151 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varRefToInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 21, + "offset": 1179 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 8, + "offset": 1166 + }, + "end": { + "line": 46, + "column": 19, + "offset": 1177 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varPointerToInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt", + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 25, + "offset": 1222 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 8, + "offset": 1205 + }, + "end": { + "line": 47, + "column": 23, + "offset": 1220 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varRefToDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate", + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 22, + "offset": 1256 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 8, + "offset": 1242 + }, + "end": { + "line": 48, + "column": 20, + "offset": 1254 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varPointerToDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate", + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 26, + "offset": 1301 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 8, + "offset": 1283 + }, + "end": { + "line": 49, + "column": 24, + "offset": 1299 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 44, + "column": 4, + "offset": 1127 + }, + "end": { + "line": 44, + "column": 13, + "offset": 1136 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 4, + "offset": 1076 + }, + "end": { + "line": 51, + "column": 16, + "offset": 1342 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 13, + "offset": 1085 + }, + "end": { + "line": 43, + "column": 50, + "offset": 1122 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 29, + "name": "fnThatHasIntWithRange", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntWithRange", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatHasIntWithRange_varIntWithRange", + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 25, + "offset": 1418 + }, + "end": { + "line": 55, + "column": 35, + "offset": 1428 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 8, + "offset": 1401 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1416 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 4, + "offset": 1383 + }, + "end": { + "line": 54, + "column": 13, + "offset": 1392 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 4, + "offset": 1348 + }, + "end": { + "line": 57, + "column": 16, + "offset": 1458 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 13, + "offset": 1357 + }, + "end": { + "line": 53, + "column": 34, + "offset": 1378 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 30, + "name": "fnThatHasVariadicIntInput", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 61, + "column": 21, + "offset": 1534 + }, + "end": { + "line": 61, + "column": 24, + "offset": 1537 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 61, + "column": 8, + "offset": 1521 + }, + "end": { + "line": 61, + "column": 19, + "offset": 1532 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varVariadicInt", + "data_type_declaration": { + "Definition": { + "data_type": { + "VarArgs": { + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 32, + "offset": 1571 + }, + "end": { + "line": 62, + "column": 35, + "offset": 1574 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "sized": true + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 35, + "offset": 1574 + }, + "end": { + "line": 62, + "column": 38, + "offset": 1577 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasVariadicIntInput" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 8, + "offset": 1547 + }, + "end": { + "line": 62, + "column": 22, + "offset": 1561 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 4, + "offset": 1503 + }, + "end": { + "line": 60, + "column": 13, + "offset": 1512 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 4, + "offset": 1464 + }, + "end": { + "line": 64, + "column": 16, + "offset": 1607 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 13, + "offset": 1473 + }, + "end": { + "line": 59, + "column": 38, + "offset": 1498 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 31, + "name": "fnThatHasVariadicStringInput", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 21, + "offset": 1686 + }, + "end": { + "line": 68, + "column": 24, + "offset": 1689 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 8, + "offset": 1673 + }, + "end": { + "line": 68, + "column": 19, + "offset": 1684 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varVariadicString", + "data_type_declaration": { + "Definition": { + "data_type": { + "VarArgs": { + "referenced_type": { + "Reference": { + "referenced_type": "STRING", + "location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 35, + "offset": 1726 + }, + "end": { + "line": 69, + "column": 41, + "offset": 1732 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "sized": true + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 41, + "offset": 1732 + }, + "end": { + "line": 69, + "column": 44, + "offset": 1735 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasVariadicStringInput" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 8, + "offset": 1699 + }, + "end": { + "line": 69, + "column": 25, + "offset": 1716 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 67, + "column": 4, + "offset": 1655 + }, + "end": { + "line": 67, + "column": 13, + "offset": 1664 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 4, + "offset": 1613 + }, + "end": { + "line": 71, + "column": 16, + "offset": 1765 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 13, + "offset": 1622 + }, + "end": { + "line": 66, + "column": 41, + "offset": 1650 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 32, + "name": "fnThatHasVariadicComplexTypeInput", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 21, + "offset": 1849 + }, + "end": { + "line": 75, + "column": 24, + "offset": 1852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 8, + "offset": 1836 + }, + "end": { + "line": 75, + "column": 19, + "offset": 1847 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varVariadicStruct", + "data_type_declaration": { + "Definition": { + "data_type": { + "VarArgs": { + "referenced_type": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 35, + "offset": 1889 + }, + "end": { + "line": 76, + "column": 59, + "offset": 1913 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "sized": true + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 59, + "offset": 1913 + }, + "end": { + "line": 76, + "column": 62, + "offset": 1916 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasVariadicComplexTypeInput" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 8, + "offset": 1862 + }, + "end": { + "line": 76, + "column": 25, + "offset": 1879 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 4, + "offset": 1818 + }, + "end": { + "line": 74, + "column": 13, + "offset": 1827 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 4, + "offset": 1771 + }, + "end": { + "line": 78, + "column": 16, + "offset": 1946 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 13, + "offset": 1780 + }, + "end": { + "line": 73, + "column": 46, + "offset": 1813 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fnThatUsesStructWithPrimitiveTypes", + "type_name": "fnThatUsesStructWithPrimitiveTypes", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 4, + "offset": 793 + }, + "end": { + "line": 31, + "column": 11, + "offset": 788 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 4, + "offset": 793 + }, + "end": { + "line": 32, + "column": 16, + "offset": 805 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatUsesStructWithComplexTypes", + "type_name": "fnThatUsesStructWithComplexTypes", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 41, + "column": 4, + "offset": 1058 + }, + "end": { + "line": 40, + "column": 11, + "offset": 1053 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 41, + "column": 4, + "offset": 1058 + }, + "end": { + "line": 41, + "column": 16, + "offset": 1070 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatUsesPrimitiveTypesAndReferences", + "type_name": "fnThatUsesPrimitiveTypesAndReferences", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 4, + "offset": 1330 + }, + "end": { + "line": 50, + "column": 11, + "offset": 1325 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 13, + "offset": 1085 + }, + "end": { + "line": 43, + "column": 50, + "offset": 1122 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 4, + "offset": 1330 + }, + "end": { + "line": 51, + "column": 16, + "offset": 1342 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasIntWithRange", + "type_name": "fnThatHasIntWithRange", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 4, + "offset": 1446 + }, + "end": { + "line": 56, + "column": 11, + "offset": 1441 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 13, + "offset": 1357 + }, + "end": { + "line": 53, + "column": 34, + "offset": 1378 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 4, + "offset": 1446 + }, + "end": { + "line": 57, + "column": 16, + "offset": 1458 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasVariadicIntInput", + "type_name": "fnThatHasVariadicIntInput", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 64, + "column": 4, + "offset": 1595 + }, + "end": { + "line": 63, + "column": 11, + "offset": 1590 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 13, + "offset": 1473 + }, + "end": { + "line": 59, + "column": 38, + "offset": 1498 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 64, + "column": 4, + "offset": 1595 + }, + "end": { + "line": 64, + "column": 16, + "offset": 1607 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasVariadicStringInput", + "type_name": "fnThatHasVariadicStringInput", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 71, + "column": 4, + "offset": 1753 + }, + "end": { + "line": 70, + "column": 11, + "offset": 1748 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 13, + "offset": 1622 + }, + "end": { + "line": 66, + "column": 41, + "offset": 1650 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 71, + "column": 4, + "offset": 1753 + }, + "end": { + "line": 71, + "column": 16, + "offset": 1765 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasVariadicComplexTypeInput", + "type_name": "fnThatHasVariadicComplexTypeInput", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 78, + "column": 4, + "offset": 1934 + }, + "end": { + "line": 77, + "column": 11, + "offset": 1929 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 13, + "offset": 1780 + }, + "end": { + "line": 73, + "column": 46, + "offset": 1813 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 78, + "column": 4, + "offset": 1934 + }, + "end": { + "line": 78, + "column": 16, + "offset": 1946 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 122, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 123, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 124, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 125, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 126, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 127, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 128, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 129, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 130, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + ] + }, + "id": 131, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithPrimitiveTypes", + "variables": [ + { + "name": "Field1", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 21, + "offset": 203 + }, + "end": { + "line": 10, + "column": 25, + "offset": 207 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 194 + }, + "end": { + "line": 10, + "column": 18, + "offset": 200 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "Field2", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 21, + "offset": 230 + }, + "end": { + "line": 11, + "column": 24, + "offset": 233 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 221 + }, + "end": { + "line": 11, + "column": 18, + "offset": 227 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "Field3", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 21, + "offset": 256 + }, + "end": { + "line": 12, + "column": 25, + "offset": 260 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 12, + "offset": 247 + }, + "end": { + "line": 12, + "column": 18, + "offset": 253 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithComplexTypes", + "variables": [ + { + "name": "byteField", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 24, + "offset": 367 + }, + "end": { + "line": 18, + "column": 28, + "offset": 371 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 12, + "offset": 355 + }, + "end": { + "line": 18, + "column": 21, + "offset": 364 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "intField", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 23, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 399 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 12, + "offset": 385 + }, + "end": { + "line": 19, + "column": 20, + "offset": 393 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "dIntField", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 24, + "offset": 425 + }, + "end": { + "line": 20, + "column": 28, + "offset": 429 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 12, + "offset": 413 + }, + "end": { + "line": 20, + "column": 21, + "offset": 422 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "stringField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_stringField", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 12, + "offset": 443 + }, + "end": { + "line": 21, + "column": 23, + "offset": 454 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "wStringField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_wStringField", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 12, + "offset": 482 + }, + "end": { + "line": 22, + "column": 24, + "offset": 494 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "complexEnumTypeField", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 35, + "offset": 547 + }, + "end": { + "line": 23, + "column": 50, + "offset": 562 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 12, + "offset": 524 + }, + "end": { + "line": 23, + "column": 32, + "offset": 544 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "intArrayField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_intArrayField", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 12, + "offset": 576 + }, + "end": { + "line": 24, + "column": 25, + "offset": 589 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__fnThatUsesStructWithComplexTypes_varString", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 200 + } + }, + "id": 20, + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 26, + "offset": 994 + }, + "end": { + "line": 38, + "column": 29, + "offset": 997 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 19, + "offset": 987 + }, + "end": { + "line": 38, + "column": 30, + "offset": 998 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesStructWithComplexTypes" + }, + { + "data_type": { + "ArrayType": { + "name": "__fnThatUsesStructWithComplexTypes_varIntArray", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 21, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 27, + "offset": 1027 + }, + "end": { + "line": 39, + "column": 28, + "offset": 1028 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 14 + } + }, + "id": 22, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 30, + "offset": 1030 + }, + "end": { + "line": 39, + "column": 32, + "offset": 1032 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 23, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 27, + "offset": 1027 + }, + "end": { + "line": 39, + "column": 32, + "offset": 1032 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 37, + "offset": 1037 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 21, + "offset": 1021 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesStructWithComplexTypes" + }, + { + "data_type": { + "PointerType": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt", + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 34, + "offset": 1192 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 21, + "offset": 1179 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "data_type": { + "PointerType": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt", + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 32, + "offset": 1229 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 25, + "offset": 1222 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "data_type": { + "PointerType": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate", + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 35, + "offset": 1269 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 22, + "offset": 1256 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "data_type": { + "PointerType": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate", + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 33, + "offset": 1308 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 26, + "offset": 1301 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "data_type": { + "SubRangeType": { + "name": "__fnThatHasIntWithRange_varIntWithRange", + "referenced_type": "INT", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 26, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 29, + "offset": 1422 + }, + "end": { + "line": 55, + "column": 30, + "offset": 1423 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 99 + } + }, + "id": 27, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 32, + "offset": 1425 + }, + "end": { + "line": 55, + "column": 34, + "offset": 1427 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 28, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 29, + "offset": 1422 + }, + "end": { + "line": 55, + "column": 34, + "offset": 1427 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 25, + "offset": 1418 + }, + "end": { + "line": 55, + "column": 35, + "offset": 1428 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasIntWithRange" + }, + { + "data_type": { + "StringType": { + "name": "__StructWithComplexTypes_stringField", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 255 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 33, + "offset": 464 + }, + "end": { + "line": 21, + "column": 36, + "offset": 467 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__StructWithComplexTypes_wStringField", + "is_wide": true, + "size": { + "stmt": { + "Literal": { + "Integer": 6000 + } + }, + "id": 15, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 35, + "offset": 505 + }, + "end": { + "line": 22, + "column": 39, + "offset": 509 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "__StructWithComplexTypes_intArrayField", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 34, + "offset": 598 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 9 + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 36, + "offset": 600 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 42, + "offset": 606 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "functions_with_complex_types.pli" + } + }, + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 119, + "name": "__init_structwithprimitivetypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 120, + "name": "__init_structwithcomplextypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 117, + "name": "__user_init_StructWithPrimitiveTypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 118, + "name": "__user_init_StructWithComplexTypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init_structwithprimitivetypes", + "type_name": "__init_structwithprimitivetypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_structwithcomplextypes", + "type_name": "__init_structwithcomplextypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "Internal": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_StructWithPrimitiveTypes", + "type_name": "__user_init_StructWithPrimitiveTypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_StructWithComplexTypes", + "type_name": "__user_init_StructWithComplexTypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__initializers" + } + }, + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 121, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + } +] diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_6_functions_with_complex_types_indexed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_6_functions_with_complex_types_indexed_content.snap new file mode 100644 index 0000000000..58426df648 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_6_functions_with_complex_types_indexed_content.snap @@ -0,0 +1,11380 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "indexed_project": { + "project": { + "units": [ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 19, + "name": "fnThatUsesStructWithPrimitiveTypes", + "kind": "Function", + "variable_blocks": [ + { + "access": "Public", + "constant": false, + "retain": false, + "variables": [ + { + "name": "fnThatUsesStructWithPrimitiveTypes", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 49, + "offset": 693 + }, + "end": { + "line": 28, + "column": 73, + "offset": 717 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varStruct", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 19, + "offset": 751 + }, + "end": { + "line": 30, + "column": 43, + "offset": 775 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 8, + "offset": 740 + }, + "end": { + "line": 30, + "column": 17, + "offset": 749 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 29, + "column": 4, + "offset": 722 + }, + "end": { + "line": 29, + "column": 13, + "offset": 731 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": { + "Aggregate": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 49, + "offset": 693 + }, + "end": { + "line": 28, + "column": 73, + "offset": 717 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 4, + "offset": 648 + }, + "end": { + "line": 32, + "column": 16, + "offset": 805 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 24, + "name": "fnThatUsesStructWithComplexTypes", + "kind": "Function", + "variable_blocks": [ + { + "access": "Public", + "constant": false, + "retain": false, + "variables": [ + { + "name": "fnThatUsesStructWithComplexTypes", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 47, + "offset": 854 + }, + "end": { + "line": 34, + "column": 69, + "offset": 876 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varStruct", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 36, + "column": 19, + "offset": 910 + }, + "end": { + "line": 36, + "column": 41, + "offset": 932 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 36, + "column": 8, + "offset": 899 + }, + "end": { + "line": 36, + "column": 17, + "offset": 908 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varEnum", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 37, + "column": 17, + "offset": 951 + }, + "end": { + "line": 37, + "column": 32, + "offset": 966 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 37, + "column": 8, + "offset": 942 + }, + "end": { + "line": 37, + "column": 15, + "offset": 949 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varString", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesStructWithComplexTypes_varString", + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 19, + "offset": 987 + }, + "end": { + "line": 38, + "column": 30, + "offset": 998 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 8, + "offset": 976 + }, + "end": { + "line": 38, + "column": 17, + "offset": 985 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varIntArray", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesStructWithComplexTypes_varIntArray", + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 21, + "offset": 1021 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 8, + "offset": 1008 + }, + "end": { + "line": 39, + "column": 19, + "offset": 1019 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 4, + "offset": 881 + }, + "end": { + "line": 35, + "column": 13, + "offset": 890 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": { + "Aggregate": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 47, + "offset": 854 + }, + "end": { + "line": 34, + "column": 69, + "offset": 876 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 4, + "offset": 811 + }, + "end": { + "line": 41, + "column": 16, + "offset": 1070 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 25, + "name": "fnThatUsesPrimitiveTypesAndReferences", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1153 + }, + "end": { + "line": 45, + "column": 19, + "offset": 1156 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 8, + "offset": 1145 + }, + "end": { + "line": 45, + "column": 14, + "offset": 1151 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varRefToInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 21, + "offset": 1179 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 8, + "offset": 1166 + }, + "end": { + "line": 46, + "column": 19, + "offset": 1177 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varPointerToInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt", + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 25, + "offset": 1222 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 8, + "offset": 1205 + }, + "end": { + "line": 47, + "column": 23, + "offset": 1220 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varRefToDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate", + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 22, + "offset": 1256 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 8, + "offset": 1242 + }, + "end": { + "line": 48, + "column": 20, + "offset": 1254 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varPointerToDate", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate", + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 26, + "offset": 1301 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 8, + "offset": 1283 + }, + "end": { + "line": 49, + "column": 24, + "offset": 1299 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 44, + "column": 4, + "offset": 1127 + }, + "end": { + "line": 44, + "column": 13, + "offset": 1136 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 4, + "offset": 1076 + }, + "end": { + "line": 51, + "column": 16, + "offset": 1342 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 13, + "offset": 1085 + }, + "end": { + "line": 43, + "column": 50, + "offset": 1122 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 29, + "name": "fnThatHasIntWithRange", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntWithRange", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fnThatHasIntWithRange_varIntWithRange", + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 25, + "offset": 1418 + }, + "end": { + "line": 55, + "column": 35, + "offset": 1428 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 8, + "offset": 1401 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1416 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 4, + "offset": 1383 + }, + "end": { + "line": 54, + "column": 13, + "offset": 1392 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 4, + "offset": 1348 + }, + "end": { + "line": 57, + "column": 16, + "offset": 1458 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 13, + "offset": 1357 + }, + "end": { + "line": 53, + "column": 34, + "offset": 1378 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 30, + "name": "fnThatHasVariadicIntInput", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 61, + "column": 21, + "offset": 1534 + }, + "end": { + "line": 61, + "column": 24, + "offset": 1537 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 61, + "column": 8, + "offset": 1521 + }, + "end": { + "line": 61, + "column": 19, + "offset": 1532 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varVariadicInt", + "data_type_declaration": { + "Definition": { + "data_type": { + "VarArgs": { + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 32, + "offset": 1571 + }, + "end": { + "line": 62, + "column": 35, + "offset": 1574 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "sized": true + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 35, + "offset": 1574 + }, + "end": { + "line": 62, + "column": 38, + "offset": 1577 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasVariadicIntInput" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 8, + "offset": 1547 + }, + "end": { + "line": 62, + "column": 22, + "offset": 1561 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 4, + "offset": 1503 + }, + "end": { + "line": 60, + "column": 13, + "offset": 1512 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 4, + "offset": 1464 + }, + "end": { + "line": 64, + "column": 16, + "offset": 1607 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 13, + "offset": 1473 + }, + "end": { + "line": 59, + "column": 38, + "offset": 1498 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 31, + "name": "fnThatHasVariadicStringInput", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 21, + "offset": 1686 + }, + "end": { + "line": 68, + "column": 24, + "offset": 1689 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 8, + "offset": 1673 + }, + "end": { + "line": 68, + "column": 19, + "offset": 1684 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varVariadicString", + "data_type_declaration": { + "Definition": { + "data_type": { + "VarArgs": { + "referenced_type": { + "Reference": { + "referenced_type": "STRING", + "location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 35, + "offset": 1726 + }, + "end": { + "line": 69, + "column": 41, + "offset": 1732 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "sized": true + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 41, + "offset": 1732 + }, + "end": { + "line": 69, + "column": 44, + "offset": 1735 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasVariadicStringInput" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 8, + "offset": 1699 + }, + "end": { + "line": 69, + "column": 25, + "offset": 1716 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 67, + "column": 4, + "offset": 1655 + }, + "end": { + "line": 67, + "column": 13, + "offset": 1664 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 4, + "offset": 1613 + }, + "end": { + "line": 71, + "column": 16, + "offset": 1765 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 13, + "offset": 1622 + }, + "end": { + "line": 66, + "column": 41, + "offset": 1650 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 32, + "name": "fnThatHasVariadicComplexTypeInput", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 21, + "offset": 1849 + }, + "end": { + "line": 75, + "column": 24, + "offset": 1852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 8, + "offset": 1836 + }, + "end": { + "line": 75, + "column": 19, + "offset": 1847 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varVariadicStruct", + "data_type_declaration": { + "Definition": { + "data_type": { + "VarArgs": { + "referenced_type": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 35, + "offset": 1889 + }, + "end": { + "line": 76, + "column": 59, + "offset": 1913 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "sized": true + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 59, + "offset": 1913 + }, + "end": { + "line": 76, + "column": 62, + "offset": 1916 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasVariadicComplexTypeInput" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 8, + "offset": 1862 + }, + "end": { + "line": 76, + "column": 25, + "offset": 1879 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 4, + "offset": 1818 + }, + "end": { + "line": 74, + "column": 13, + "offset": 1827 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 4, + "offset": 1771 + }, + "end": { + "line": 78, + "column": 16, + "offset": 1946 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 13, + "offset": 1780 + }, + "end": { + "line": 73, + "column": 46, + "offset": 1813 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fnThatUsesStructWithPrimitiveTypes", + "type_name": "fnThatUsesStructWithPrimitiveTypes", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 4, + "offset": 793 + }, + "end": { + "line": 31, + "column": 11, + "offset": 788 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 4, + "offset": 793 + }, + "end": { + "line": 32, + "column": 16, + "offset": 805 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatUsesStructWithComplexTypes", + "type_name": "fnThatUsesStructWithComplexTypes", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 41, + "column": 4, + "offset": 1058 + }, + "end": { + "line": 40, + "column": 11, + "offset": 1053 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 41, + "column": 4, + "offset": 1058 + }, + "end": { + "line": 41, + "column": 16, + "offset": 1070 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatUsesPrimitiveTypesAndReferences", + "type_name": "fnThatUsesPrimitiveTypesAndReferences", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 4, + "offset": 1330 + }, + "end": { + "line": 50, + "column": 11, + "offset": 1325 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 13, + "offset": 1085 + }, + "end": { + "line": 43, + "column": 50, + "offset": 1122 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 4, + "offset": 1330 + }, + "end": { + "line": 51, + "column": 16, + "offset": 1342 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasIntWithRange", + "type_name": "fnThatHasIntWithRange", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 4, + "offset": 1446 + }, + "end": { + "line": 56, + "column": 11, + "offset": 1441 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 13, + "offset": 1357 + }, + "end": { + "line": 53, + "column": 34, + "offset": 1378 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 4, + "offset": 1446 + }, + "end": { + "line": 57, + "column": 16, + "offset": 1458 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasVariadicIntInput", + "type_name": "fnThatHasVariadicIntInput", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 64, + "column": 4, + "offset": 1595 + }, + "end": { + "line": 63, + "column": 11, + "offset": 1590 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 13, + "offset": 1473 + }, + "end": { + "line": 59, + "column": 38, + "offset": 1498 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 64, + "column": 4, + "offset": 1595 + }, + "end": { + "line": 64, + "column": 16, + "offset": 1607 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasVariadicStringInput", + "type_name": "fnThatHasVariadicStringInput", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 71, + "column": 4, + "offset": 1753 + }, + "end": { + "line": 70, + "column": 11, + "offset": 1748 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 13, + "offset": 1622 + }, + "end": { + "line": 66, + "column": 41, + "offset": 1650 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 71, + "column": 4, + "offset": 1753 + }, + "end": { + "line": 71, + "column": 16, + "offset": 1765 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasVariadicComplexTypeInput", + "type_name": "fnThatHasVariadicComplexTypeInput", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 78, + "column": 4, + "offset": 1934 + }, + "end": { + "line": 77, + "column": 11, + "offset": 1929 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 13, + "offset": 1780 + }, + "end": { + "line": 73, + "column": 46, + "offset": 1813 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 78, + "column": 4, + "offset": 1934 + }, + "end": { + "line": 78, + "column": 16, + "offset": 1946 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 89, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 90, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 91, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 92, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 93, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 94, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 95, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 96, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 97, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + ] + }, + "id": 98, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithPrimitiveTypes", + "variables": [ + { + "name": "Field1", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 21, + "offset": 203 + }, + "end": { + "line": 10, + "column": 25, + "offset": 207 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 194 + }, + "end": { + "line": 10, + "column": 18, + "offset": 200 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "Field2", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 21, + "offset": 230 + }, + "end": { + "line": 11, + "column": 24, + "offset": 233 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 221 + }, + "end": { + "line": 11, + "column": 18, + "offset": 227 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "Field3", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 21, + "offset": 256 + }, + "end": { + "line": 12, + "column": 25, + "offset": 260 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 12, + "offset": 247 + }, + "end": { + "line": 12, + "column": 18, + "offset": 253 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithComplexTypes", + "variables": [ + { + "name": "byteField", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 24, + "offset": 367 + }, + "end": { + "line": 18, + "column": 28, + "offset": 371 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 12, + "offset": 355 + }, + "end": { + "line": 18, + "column": 21, + "offset": 364 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "intField", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 23, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 399 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 12, + "offset": 385 + }, + "end": { + "line": 19, + "column": 20, + "offset": 393 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "dIntField", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 24, + "offset": 425 + }, + "end": { + "line": 20, + "column": 28, + "offset": 429 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 12, + "offset": 413 + }, + "end": { + "line": 20, + "column": 21, + "offset": 422 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "stringField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_stringField", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 12, + "offset": 443 + }, + "end": { + "line": 21, + "column": 23, + "offset": 454 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "wStringField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_wStringField", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 12, + "offset": 482 + }, + "end": { + "line": 22, + "column": 24, + "offset": 494 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "complexEnumTypeField", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 35, + "offset": 547 + }, + "end": { + "line": 23, + "column": 50, + "offset": 562 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 12, + "offset": 524 + }, + "end": { + "line": 23, + "column": 32, + "offset": 544 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "intArrayField", + "data_type_declaration": { + "Reference": { + "referenced_type": "__StructWithComplexTypes_intArrayField", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 12, + "offset": 576 + }, + "end": { + "line": 24, + "column": 25, + "offset": 589 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__fnThatUsesStructWithComplexTypes_varString", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 200 + } + }, + "id": 20, + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 26, + "offset": 994 + }, + "end": { + "line": 38, + "column": 29, + "offset": 997 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 19, + "offset": 987 + }, + "end": { + "line": 38, + "column": 30, + "offset": 998 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesStructWithComplexTypes" + }, + { + "data_type": { + "ArrayType": { + "name": "__fnThatUsesStructWithComplexTypes_varIntArray", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 21, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 27, + "offset": 1027 + }, + "end": { + "line": 39, + "column": 28, + "offset": 1028 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 14 + } + }, + "id": 22, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 30, + "offset": 1030 + }, + "end": { + "line": 39, + "column": 32, + "offset": 1032 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 23, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 27, + "offset": 1027 + }, + "end": { + "line": 39, + "column": 32, + "offset": 1032 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 37, + "offset": 1037 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 21, + "offset": 1021 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesStructWithComplexTypes" + }, + { + "data_type": { + "PointerType": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt", + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 34, + "offset": 1192 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 21, + "offset": 1179 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "data_type": { + "PointerType": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt", + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 32, + "offset": 1229 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 25, + "offset": 1222 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "data_type": { + "PointerType": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate", + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 35, + "offset": 1269 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 22, + "offset": 1256 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "data_type": { + "PointerType": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate", + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 33, + "offset": 1308 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 26, + "offset": 1301 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + }, + { + "data_type": { + "SubRangeType": { + "name": "__fnThatHasIntWithRange_varIntWithRange", + "referenced_type": "INT", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 26, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 29, + "offset": 1422 + }, + "end": { + "line": 55, + "column": 30, + "offset": 1423 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 99 + } + }, + "id": 27, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 32, + "offset": 1425 + }, + "end": { + "line": 55, + "column": 34, + "offset": 1427 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 28, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 29, + "offset": 1422 + }, + "end": { + "line": 55, + "column": 34, + "offset": 1427 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 25, + "offset": 1418 + }, + "end": { + "line": 55, + "column": 35, + "offset": 1428 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasIntWithRange" + }, + { + "data_type": { + "StringType": { + "name": "__StructWithComplexTypes_stringField", + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 255 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 33, + "offset": 464 + }, + "end": { + "line": 21, + "column": 36, + "offset": 467 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StringType": { + "name": "__StructWithComplexTypes_wStringField", + "is_wide": true, + "size": { + "stmt": { + "Literal": { + "Integer": 6000 + } + }, + "id": 15, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 35, + "offset": 505 + }, + "end": { + "line": 22, + "column": 39, + "offset": 509 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "ArrayType": { + "name": "__StructWithComplexTypes_intArrayField", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 34, + "offset": 598 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 9 + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 36, + "offset": 600 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 42, + "offset": 606 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "functions_with_complex_types.pli" + } + } + ] + }, + "index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": { + "__structwithprimitivetypes__init": [ + { + "name": "__StructWithPrimitiveTypes__init", + "qualified_name": "__StructWithPrimitiveTypes__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "StructWithPrimitiveTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "__structwithcomplextypes__init": [ + { + "name": "__StructWithComplexTypes__init", + "qualified_name": "__StructWithComplexTypes__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "StructWithComplexTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "enum_global_variables": { + "inner_map": { + "orange": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "yellow": [ + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "purple": [ + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "pous": { + "inner_map": { + "fnthatusesstructwithprimitivetypes": [ + { + "Function": { + "name": "fnThatUsesStructWithPrimitiveTypes", + "return_type": "StructWithPrimitiveTypes", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthatusesstructwithcomplextypes": [ + { + "Function": { + "name": "fnThatUsesStructWithComplexTypes", + "return_type": "StructWithComplexTypes", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthatusesprimitivetypesandreferences": [ + { + "Function": { + "name": "fnThatUsesPrimitiveTypesAndReferences", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 13, + "offset": 1085 + }, + "end": { + "line": 43, + "column": 50, + "offset": 1122 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthathasintwithrange": [ + { + "Function": { + "name": "fnThatHasIntWithRange", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 13, + "offset": 1357 + }, + "end": { + "line": 53, + "column": 34, + "offset": 1378 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthathasvariadicintinput": [ + { + "Function": { + "name": "fnThatHasVariadicIntInput", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 13, + "offset": 1473 + }, + "end": { + "line": 59, + "column": 38, + "offset": 1498 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthathasvariadicstringinput": [ + { + "Function": { + "name": "fnThatHasVariadicStringInput", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 13, + "offset": 1622 + }, + "end": { + "line": 66, + "column": 41, + "offset": 1650 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "fnthathasvariadiccomplextypeinput": [ + { + "Function": { + "name": "fnThatHasVariadicComplexTypeInput", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 13, + "offset": 1780 + }, + "end": { + "line": 73, + "column": 46, + "offset": 1813 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "fnthatusesstructwithprimitivetypes": { + "call_name": "fnThatUsesStructWithPrimitiveTypes", + "type_name": "fnThatUsesStructWithPrimitiveTypes", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 4, + "offset": 793 + }, + "end": { + "line": 31, + "column": 11, + "offset": 788 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "fnthatusesstructwithcomplextypes": { + "call_name": "fnThatUsesStructWithComplexTypes", + "type_name": "fnThatUsesStructWithComplexTypes", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 41, + "column": 4, + "offset": 1058 + }, + "end": { + "line": 40, + "column": 11, + "offset": 1053 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "fnthatusesprimitivetypesandreferences": { + "call_name": "fnThatUsesPrimitiveTypesAndReferences", + "type_name": "fnThatUsesPrimitiveTypesAndReferences", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 4, + "offset": 1330 + }, + "end": { + "line": 50, + "column": 11, + "offset": 1325 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "fnthathasintwithrange": { + "call_name": "fnThatHasIntWithRange", + "type_name": "fnThatHasIntWithRange", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 4, + "offset": 1446 + }, + "end": { + "line": 56, + "column": 11, + "offset": 1441 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "fnthathasvariadicintinput": { + "call_name": "fnThatHasVariadicIntInput", + "type_name": "fnThatHasVariadicIntInput", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 64, + "column": 4, + "offset": 1595 + }, + "end": { + "line": 63, + "column": 11, + "offset": 1590 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "fnthathasvariadicstringinput": { + "call_name": "fnThatHasVariadicStringInput", + "type_name": "fnThatHasVariadicStringInput", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 71, + "column": 4, + "offset": 1753 + }, + "end": { + "line": 70, + "column": 11, + "offset": 1748 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "fnthathasvariadiccomplextypeinput": { + "call_name": "fnThatHasVariadicComplexTypeInput", + "type_name": "fnThatHasVariadicComplexTypeInput", + "associated_class": null, + "implementation_type": "Function", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 78, + "column": 4, + "offset": 1934 + }, + "end": { + "line": 77, + "column": 11, + "offset": 1929 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "complexenumtype": [ + { + "name": "ComplexEnumType", + "initial_value": [ + 0, + 0 + ], + "information": { + "Enum": { + "name": "ComplexEnumType", + "referenced_type": "DINT", + "variants": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ] + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "structwithprimitivetypes": [ + { + "name": "StructWithPrimitiveTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "StructWithPrimitiveTypes", + "members": [ + { + "name": "Field1", + "qualified_name": "StructWithPrimitiveTypes.Field1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BYTE", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 194 + }, + "end": { + "line": 10, + "column": 18, + "offset": 200 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "Field2", + "qualified_name": "StructWithPrimitiveTypes.Field2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 221 + }, + "end": { + "line": 11, + "column": 18, + "offset": 227 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "Field3", + "qualified_name": "StructWithPrimitiveTypes.Field3", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 12, + "offset": 247 + }, + "end": { + "line": 12, + "column": 18, + "offset": 253 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "structwithcomplextypes": [ + { + "name": "StructWithComplexTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "StructWithComplexTypes", + "members": [ + { + "name": "byteField", + "qualified_name": "StructWithComplexTypes.byteField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BYTE", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 12, + "offset": 355 + }, + "end": { + "line": 18, + "column": 21, + "offset": 364 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "intField", + "qualified_name": "StructWithComplexTypes.intField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 12, + "offset": 385 + }, + "end": { + "line": 19, + "column": 20, + "offset": 393 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "dIntField", + "qualified_name": "StructWithComplexTypes.dIntField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 12, + "offset": 413 + }, + "end": { + "line": 20, + "column": 21, + "offset": 422 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "stringField", + "qualified_name": "StructWithComplexTypes.stringField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__StructWithComplexTypes_stringField", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 12, + "offset": 443 + }, + "end": { + "line": 21, + "column": 23, + "offset": 454 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "wStringField", + "qualified_name": "StructWithComplexTypes.wStringField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__StructWithComplexTypes_wStringField", + "location_in_parent": 4, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 12, + "offset": 482 + }, + "end": { + "line": 22, + "column": 24, + "offset": 494 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "complexEnumTypeField", + "qualified_name": "StructWithComplexTypes.complexEnumTypeField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 5, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 12, + "offset": 524 + }, + "end": { + "line": 23, + "column": 32, + "offset": 544 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "intArrayField", + "qualified_name": "StructWithComplexTypes.intArrayField", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__StructWithComplexTypes_intArrayField", + "location_in_parent": 6, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 12, + "offset": 576 + }, + "end": { + "line": 24, + "column": 25, + "offset": 589 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthatusesstructwithcomplextypes_varstring": [ + { + "name": "__fnThatUsesStructWithComplexTypes_varString", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 201 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 19, + "offset": 987 + }, + "end": { + "line": 38, + "column": 30, + "offset": 998 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthatusesstructwithcomplextypes_varintarray": [ + { + "name": "__fnThatUsesStructWithComplexTypes_varIntArray", + "initial_value": null, + "information": { + "Array": { + "name": "__fnThatUsesStructWithComplexTypes_varIntArray", + "inner_type_name": "INT", + "dimensions": [ + { + "start_offset": { + "ConstExpression": [ + 3, + 0 + ] + }, + "end_offset": { + "ConstExpression": [ + 4, + 0 + ] + } + } + ] + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 21, + "offset": 1021 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthatusesprimitivetypesandreferences_varreftoint": [ + { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt", + "initial_value": null, + "information": { + "Pointer": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt", + "inner_type_name": "INT", + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 21, + "offset": 1179 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthatusesprimitivetypesandreferences_varpointertoint": [ + { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt", + "initial_value": null, + "information": { + "Pointer": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt", + "inner_type_name": "INT", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 25, + "offset": 1222 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthatusesprimitivetypesandreferences_varreftodate": [ + { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate", + "initial_value": null, + "information": { + "Pointer": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate", + "inner_type_name": "DATE", + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 22, + "offset": 1256 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthatusesprimitivetypesandreferences_varpointertodate": [ + { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate", + "initial_value": null, + "information": { + "Pointer": { + "name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate", + "inner_type_name": "DATE", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 26, + "offset": 1301 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__fnthathasintwithrange_varintwithrange": [ + { + "name": "__fnThatHasIntWithRange_varIntWithRange", + "initial_value": null, + "information": { + "SubRange": { + "name": "__fnThatHasIntWithRange_varIntWithRange", + "referenced_type": "INT", + "sub_range": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 26, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 29, + "offset": 1422 + }, + "end": { + "line": 55, + "column": 30, + "offset": 1423 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 99 + } + }, + "id": 27, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 32, + "offset": 1425 + }, + "end": { + "line": 55, + "column": 34, + "offset": 1427 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 25, + "offset": 1418 + }, + "end": { + "line": 55, + "column": 35, + "offset": 1428 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__structwithcomplextypes_stringfield": [ + { + "name": "__StructWithComplexTypes_stringField", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 256 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__structwithcomplextypes_wstringfield": [ + { + "name": "__StructWithComplexTypes_wStringField", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 6001 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__structwithcomplextypes_intarrayfield": [ + { + "name": "__StructWithComplexTypes_intArrayField", + "initial_value": null, + "information": { + "Array": { + "name": "__StructWithComplexTypes_intArrayField", + "inner_type_name": "INT", + "dimensions": [ + { + "start_offset": { + "ConstExpression": [ + 5, + 0 + ] + }, + "end_offset": { + "ConstExpression": [ + 6, + 0 + ] + } + } + ] + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "__auto_pointer_to_structwithprimitivetypes": [ + { + "name": "__auto_pointer_to_StructWithPrimitiveTypes", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_StructWithPrimitiveTypes", + "inner_type_name": "StructWithPrimitiveTypes", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to_structwithcomplextypes": [ + { + "name": "__auto_pointer_to_StructWithComplexTypes", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_StructWithComplexTypes", + "inner_type_name": "StructWithComplexTypes", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "fnthatusesstructwithprimitivetypes": [ + { + "name": "fnThatUsesStructWithPrimitiveTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatUsesStructWithPrimitiveTypes", + "members": [ + { + "name": "fnThatUsesStructWithPrimitiveTypes", + "qualified_name": "fnThatUsesStructWithPrimitiveTypes.fnThatUsesStructWithPrimitiveTypes", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_StructWithPrimitiveTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varStruct", + "qualified_name": "fnThatUsesStructWithPrimitiveTypes.varStruct", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "StructWithPrimitiveTypes", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 8, + "offset": 740 + }, + "end": { + "line": 30, + "column": 17, + "offset": 749 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "fnthatusesstructwithcomplextypes": [ + { + "name": "fnThatUsesStructWithComplexTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatUsesStructWithComplexTypes", + "members": [ + { + "name": "fnThatUsesStructWithComplexTypes", + "qualified_name": "fnThatUsesStructWithComplexTypes.fnThatUsesStructWithComplexTypes", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_StructWithComplexTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varStruct", + "qualified_name": "fnThatUsesStructWithComplexTypes.varStruct", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "StructWithComplexTypes", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 36, + "column": 8, + "offset": 899 + }, + "end": { + "line": 36, + "column": 17, + "offset": 908 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varEnum", + "qualified_name": "fnThatUsesStructWithComplexTypes.varEnum", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 37, + "column": 8, + "offset": 942 + }, + "end": { + "line": 37, + "column": 15, + "offset": 949 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varString", + "qualified_name": "fnThatUsesStructWithComplexTypes.varString", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatUsesStructWithComplexTypes_varString", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 8, + "offset": 976 + }, + "end": { + "line": 38, + "column": 17, + "offset": 985 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varIntArray", + "qualified_name": "fnThatUsesStructWithComplexTypes.varIntArray", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatUsesStructWithComplexTypes_varIntArray", + "location_in_parent": 4, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 8, + "offset": 1008 + }, + "end": { + "line": 39, + "column": 19, + "offset": 1019 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "fnthatusesprimitivetypesandreferences": [ + { + "name": "fnThatUsesPrimitiveTypesAndReferences", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatUsesPrimitiveTypesAndReferences", + "members": [ + { + "name": "varInt", + "qualified_name": "fnThatUsesPrimitiveTypesAndReferences.varInt", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 8, + "offset": 1145 + }, + "end": { + "line": 45, + "column": 14, + "offset": 1151 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varRefToInt", + "qualified_name": "fnThatUsesPrimitiveTypesAndReferences.varRefToInt", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToInt", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 8, + "offset": 1166 + }, + "end": { + "line": 46, + "column": 19, + "offset": 1177 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varPointerToInt", + "qualified_name": "fnThatUsesPrimitiveTypesAndReferences.varPointerToInt", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToInt", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 8, + "offset": 1205 + }, + "end": { + "line": 47, + "column": 23, + "offset": 1220 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varRefToDate", + "qualified_name": "fnThatUsesPrimitiveTypesAndReferences.varRefToDate", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatUsesPrimitiveTypesAndReferences_varRefToDate", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 8, + "offset": 1242 + }, + "end": { + "line": 48, + "column": 20, + "offset": 1254 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varPointerToDate", + "qualified_name": "fnThatUsesPrimitiveTypesAndReferences.varPointerToDate", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatUsesPrimitiveTypesAndReferences_varPointerToDate", + "location_in_parent": 4, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 8, + "offset": 1283 + }, + "end": { + "line": 49, + "column": 24, + "offset": 1299 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 13, + "offset": 1085 + }, + "end": { + "line": 43, + "column": 50, + "offset": 1122 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "fnthathasintwithrange": [ + { + "name": "fnThatHasIntWithRange", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatHasIntWithRange", + "members": [ + { + "name": "varIntWithRange", + "qualified_name": "fnThatHasIntWithRange.varIntWithRange", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fnThatHasIntWithRange_varIntWithRange", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 8, + "offset": 1401 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1416 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 13, + "offset": 1357 + }, + "end": { + "line": 53, + "column": 34, + "offset": 1378 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "fnthathasvariadicintinput": [ + { + "name": "fnThatHasVariadicIntInput", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatHasVariadicIntInput", + "members": [ + { + "name": "varIntInput", + "qualified_name": "fnThatHasVariadicIntInput.varIntInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 61, + "column": 8, + "offset": 1521 + }, + "end": { + "line": 61, + "column": 19, + "offset": 1532 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varVariadicInt", + "qualified_name": "fnThatHasVariadicIntInput.varVariadicInt", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 8, + "offset": 1547 + }, + "end": { + "line": 62, + "column": 22, + "offset": 1561 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": { + "Sized": "INT" + } + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 13, + "offset": 1473 + }, + "end": { + "line": 59, + "column": 38, + "offset": 1498 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "fnthathasvariadicstringinput": [ + { + "name": "fnThatHasVariadicStringInput", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatHasVariadicStringInput", + "members": [ + { + "name": "varIntInput", + "qualified_name": "fnThatHasVariadicStringInput.varIntInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 8, + "offset": 1673 + }, + "end": { + "line": 68, + "column": 19, + "offset": 1684 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varVariadicString", + "qualified_name": "fnThatHasVariadicStringInput.varVariadicString", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "STRING", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 8, + "offset": 1699 + }, + "end": { + "line": 69, + "column": 25, + "offset": 1716 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": { + "Sized": "STRING" + } + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 13, + "offset": 1622 + }, + "end": { + "line": 66, + "column": 41, + "offset": 1650 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "fnthathasvariadiccomplextypeinput": [ + { + "name": "fnThatHasVariadicComplexTypeInput", + "initial_value": null, + "information": { + "Struct": { + "name": "fnThatHasVariadicComplexTypeInput", + "members": [ + { + "name": "varIntInput", + "qualified_name": "fnThatHasVariadicComplexTypeInput.varIntInput", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 8, + "offset": 1836 + }, + "end": { + "line": 75, + "column": 19, + "offset": 1847 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": null + }, + { + "name": "varVariadicStruct", + "qualified_name": "fnThatHasVariadicComplexTypeInput.varVariadicStruct", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "StructWithPrimitiveTypes", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 8, + "offset": 1862 + }, + "end": { + "line": 76, + "column": 25, + "offset": 1879 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "varargs": { + "Sized": "StructWithPrimitiveTypes" + } + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 13, + "offset": 1780 + }, + "end": { + "line": 73, + "column": 46, + "offset": 1813 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 21, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 27, + "offset": 1027 + }, + "end": { + "line": 39, + "column": 28, + "offset": 1028 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 14 + } + }, + "id": 22, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 30, + "offset": 1030 + }, + "end": { + "line": 39, + "column": 32, + "offset": 1032 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 34, + "offset": 598 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 9 + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 36, + "offset": 600 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "unresolvables": [] + }, + "context": { + "sources": { + "functions_with_complex_types.pli": { + "source": "\n TYPE ComplexEnumType : (\n orange := 10,\n yellow := 20,\n purple := 30\n );\n END_TYPE\n\n TYPE StructWithPrimitiveTypes:\n STRUCT\n Field1 : BYTE;\n Field2 : INT;\n Field3 : DINT;\n END_STRUCT\n END_TYPE\n\n TYPE StructWithComplexTypes:\n STRUCT\n byteField : BYTE;\n intField : INT;\n dIntField : DINT;\n stringField : STRING[255];\n wStringField : WSTRING[6000];\n complexEnumTypeField : ComplexEnumType;\n intArrayField: ARRAY[0..9] OF INT;\n END_STRUCT\n END_TYPE\n\n FUNCTION fnThatUsesStructWithPrimitiveTypes: StructWithPrimitiveTypes\n VAR_INPUT\n varStruct: StructWithPrimitiveTypes;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatUsesStructWithComplexTypes: StructWithComplexTypes\n VAR_INPUT\n varStruct: StructWithComplexTypes;\n varEnum: ComplexEnumType;\n varString: STRING[200];\n varIntArray: ARRAY[0..14] OF INT;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatUsesPrimitiveTypesAndReferences\n VAR_INPUT\n varInt: INT;\n varRefToInt: REFERENCE TO INT;\n varPointerToInt: REF_TO INT;\n varRefToDate: REFERENCE TO DATE;\n varPointerToDate: REF_TO DATE;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatHasIntWithRange\n VAR_INPUT\n varIntWithRange: INT(0..99);\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatHasVariadicIntInput\n VAR_INPUT\n varIntInput: INT;\n varVariadicInt: {sized} INT...;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatHasVariadicStringInput\n VAR_INPUT\n varIntInput: INT;\n varVariadicString: {sized} STRING...;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatHasVariadicComplexTypeInput\n VAR_INPUT\n varIntInput: INT;\n varVariadicStruct: {sized} StructWithPrimitiveTypes...;\n END_VAR\n END_FUNCTION\n ", + "path": "functions_with_complex_types.pli" + } + }, + "provider": { + "current_id": 117 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_6_functions_with_complex_types_parsed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_6_functions_with_complex_types_parsed_content.snap new file mode 100644 index 0000000000..8001801b25 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_6_functions_with_complex_types_parsed_content.snap @@ -0,0 +1,3509 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "parsed_project": { + "units": [ + { + "global_vars": [], + "var_config": [], + "pous": [ + { + "id": 19, + "name": "fnThatUsesStructWithPrimitiveTypes", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varStruct", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 19, + "offset": 751 + }, + "end": { + "line": 30, + "column": 43, + "offset": 775 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 8, + "offset": 740 + }, + "end": { + "line": 30, + "column": 17, + "offset": 749 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 29, + "column": 4, + "offset": 722 + }, + "end": { + "line": 29, + "column": 13, + "offset": 731 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 49, + "offset": 693 + }, + "end": { + "line": 28, + "column": 73, + "offset": 717 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 4, + "offset": 648 + }, + "end": { + "line": 32, + "column": 16, + "offset": 805 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 24, + "name": "fnThatUsesStructWithComplexTypes", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varStruct", + "data_type_declaration": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 36, + "column": 19, + "offset": 910 + }, + "end": { + "line": 36, + "column": 41, + "offset": 932 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 36, + "column": 8, + "offset": 899 + }, + "end": { + "line": 36, + "column": 17, + "offset": 908 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varEnum", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 37, + "column": 17, + "offset": 951 + }, + "end": { + "line": 37, + "column": 32, + "offset": 966 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 37, + "column": 8, + "offset": 942 + }, + "end": { + "line": 37, + "column": 15, + "offset": 949 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varString", + "data_type_declaration": { + "Definition": { + "data_type": { + "StringType": { + "name": null, + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 200 + } + }, + "id": 20, + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 26, + "offset": 994 + }, + "end": { + "line": 38, + "column": 29, + "offset": 997 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 19, + "offset": 987 + }, + "end": { + "line": 38, + "column": 30, + "offset": 998 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesStructWithComplexTypes" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 8, + "offset": 976 + }, + "end": { + "line": 38, + "column": 17, + "offset": 985 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varIntArray", + "data_type_declaration": { + "Definition": { + "data_type": { + "ArrayType": { + "name": null, + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 21, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 27, + "offset": 1027 + }, + "end": { + "line": 39, + "column": 28, + "offset": 1028 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 14 + } + }, + "id": 22, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 30, + "offset": 1030 + }, + "end": { + "line": 39, + "column": 32, + "offset": 1032 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 23, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 27, + "offset": 1027 + }, + "end": { + "line": 39, + "column": 32, + "offset": 1032 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 37, + "offset": 1037 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 21, + "offset": 1021 + }, + "end": { + "line": 39, + "column": 40, + "offset": 1040 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesStructWithComplexTypes" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 39, + "column": 8, + "offset": 1008 + }, + "end": { + "line": 39, + "column": 19, + "offset": 1019 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 4, + "offset": 881 + }, + "end": { + "line": 35, + "column": 13, + "offset": 890 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": { + "Reference": { + "referenced_type": "StructWithComplexTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 47, + "offset": 854 + }, + "end": { + "line": 34, + "column": 69, + "offset": 876 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 4, + "offset": 811 + }, + "end": { + "line": 41, + "column": 16, + "offset": 1070 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 25, + "name": "fnThatUsesPrimitiveTypesAndReferences", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1153 + }, + "end": { + "line": 45, + "column": 19, + "offset": 1156 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 8, + "offset": 1145 + }, + "end": { + "line": 45, + "column": 14, + "offset": 1151 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varRefToInt", + "data_type_declaration": { + "Definition": { + "data_type": { + "PointerType": { + "name": null, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 34, + "offset": 1192 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 21, + "offset": 1179 + }, + "end": { + "line": 46, + "column": 37, + "offset": 1195 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 8, + "offset": 1166 + }, + "end": { + "line": 46, + "column": 19, + "offset": 1177 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varPointerToInt", + "data_type_declaration": { + "Definition": { + "data_type": { + "PointerType": { + "name": null, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 32, + "offset": 1229 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 25, + "offset": 1222 + }, + "end": { + "line": 47, + "column": 35, + "offset": 1232 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 47, + "column": 8, + "offset": 1205 + }, + "end": { + "line": 47, + "column": 23, + "offset": 1220 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varRefToDate", + "data_type_declaration": { + "Definition": { + "data_type": { + "PointerType": { + "name": null, + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 35, + "offset": 1269 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": "Reference", + "type_safe": true, + "is_function": false + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 22, + "offset": 1256 + }, + "end": { + "line": 48, + "column": 39, + "offset": 1273 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 8, + "offset": 1242 + }, + "end": { + "line": 48, + "column": 20, + "offset": 1254 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varPointerToDate", + "data_type_declaration": { + "Definition": { + "data_type": { + "PointerType": { + "name": null, + "referenced_type": { + "Reference": { + "referenced_type": "DATE", + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 33, + "offset": 1308 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 26, + "offset": 1301 + }, + "end": { + "line": 49, + "column": 37, + "offset": 1312 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatUsesPrimitiveTypesAndReferences" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 8, + "offset": 1283 + }, + "end": { + "line": 49, + "column": 24, + "offset": 1299 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 44, + "column": 4, + "offset": 1127 + }, + "end": { + "line": 44, + "column": 13, + "offset": 1136 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 4, + "offset": 1076 + }, + "end": { + "line": 51, + "column": 16, + "offset": 1342 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 13, + "offset": 1085 + }, + "end": { + "line": 43, + "column": 50, + "offset": 1122 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 29, + "name": "fnThatHasIntWithRange", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntWithRange", + "data_type_declaration": { + "Definition": { + "data_type": { + "SubRangeType": { + "name": null, + "referenced_type": "INT", + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 26, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 29, + "offset": 1422 + }, + "end": { + "line": 55, + "column": 30, + "offset": 1423 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 99 + } + }, + "id": 27, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 32, + "offset": 1425 + }, + "end": { + "line": 55, + "column": 34, + "offset": 1427 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 28, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 29, + "offset": 1422 + }, + "end": { + "line": 55, + "column": 34, + "offset": 1427 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 25, + "offset": 1418 + }, + "end": { + "line": 55, + "column": 35, + "offset": 1428 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasIntWithRange" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 55, + "column": 8, + "offset": 1401 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1416 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 4, + "offset": 1383 + }, + "end": { + "line": 54, + "column": 13, + "offset": 1392 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 4, + "offset": 1348 + }, + "end": { + "line": 57, + "column": 16, + "offset": 1458 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 13, + "offset": 1357 + }, + "end": { + "line": 53, + "column": 34, + "offset": 1378 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 30, + "name": "fnThatHasVariadicIntInput", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 61, + "column": 21, + "offset": 1534 + }, + "end": { + "line": 61, + "column": 24, + "offset": 1537 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 61, + "column": 8, + "offset": 1521 + }, + "end": { + "line": 61, + "column": 19, + "offset": 1532 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varVariadicInt", + "data_type_declaration": { + "Definition": { + "data_type": { + "VarArgs": { + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 32, + "offset": 1571 + }, + "end": { + "line": 62, + "column": 35, + "offset": 1574 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "sized": true + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 35, + "offset": 1574 + }, + "end": { + "line": 62, + "column": 38, + "offset": 1577 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasVariadicIntInput" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 8, + "offset": 1547 + }, + "end": { + "line": 62, + "column": 22, + "offset": 1561 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 4, + "offset": 1503 + }, + "end": { + "line": 60, + "column": 13, + "offset": 1512 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 4, + "offset": 1464 + }, + "end": { + "line": 64, + "column": 16, + "offset": 1607 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 13, + "offset": 1473 + }, + "end": { + "line": 59, + "column": 38, + "offset": 1498 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 31, + "name": "fnThatHasVariadicStringInput", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 21, + "offset": 1686 + }, + "end": { + "line": 68, + "column": 24, + "offset": 1689 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 8, + "offset": 1673 + }, + "end": { + "line": 68, + "column": 19, + "offset": 1684 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varVariadicString", + "data_type_declaration": { + "Definition": { + "data_type": { + "VarArgs": { + "referenced_type": { + "Reference": { + "referenced_type": "STRING", + "location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 35, + "offset": 1726 + }, + "end": { + "line": 69, + "column": 41, + "offset": 1732 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "sized": true + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 41, + "offset": 1732 + }, + "end": { + "line": 69, + "column": 44, + "offset": 1735 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasVariadicStringInput" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 69, + "column": 8, + "offset": 1699 + }, + "end": { + "line": 69, + "column": 25, + "offset": 1716 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 67, + "column": 4, + "offset": 1655 + }, + "end": { + "line": 67, + "column": 13, + "offset": 1664 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 4, + "offset": 1613 + }, + "end": { + "line": 71, + "column": 16, + "offset": 1765 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 13, + "offset": 1622 + }, + "end": { + "line": 66, + "column": 41, + "offset": 1650 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 32, + "name": "fnThatHasVariadicComplexTypeInput", + "kind": "Function", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varIntInput", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 21, + "offset": 1849 + }, + "end": { + "line": 75, + "column": 24, + "offset": 1852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 8, + "offset": 1836 + }, + "end": { + "line": 75, + "column": 19, + "offset": 1847 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "varVariadicStruct", + "data_type_declaration": { + "Definition": { + "data_type": { + "VarArgs": { + "referenced_type": { + "Reference": { + "referenced_type": "StructWithPrimitiveTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 35, + "offset": 1889 + }, + "end": { + "line": 76, + "column": 59, + "offset": 1913 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "sized": true + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 59, + "offset": 1913 + }, + "end": { + "line": 76, + "column": 62, + "offset": 1916 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": "fnThatHasVariadicComplexTypeInput" + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 76, + "column": 8, + "offset": 1862 + }, + "end": { + "line": 76, + "column": 25, + "offset": 1879 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "kind": { + "Input": "ByVal" + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 4, + "offset": 1818 + }, + "end": { + "line": 74, + "column": 13, + "offset": 1827 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 4, + "offset": 1771 + }, + "end": { + "line": 78, + "column": 16, + "offset": 1946 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 13, + "offset": 1780 + }, + "end": { + "line": 73, + "column": 46, + "offset": 1813 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fnThatUsesStructWithPrimitiveTypes", + "type_name": "fnThatUsesStructWithPrimitiveTypes", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 4, + "offset": 793 + }, + "end": { + "line": 31, + "column": 11, + "offset": 788 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 13, + "offset": 657 + }, + "end": { + "line": 28, + "column": 47, + "offset": 691 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 4, + "offset": 793 + }, + "end": { + "line": 32, + "column": 16, + "offset": 805 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatUsesStructWithComplexTypes", + "type_name": "fnThatUsesStructWithComplexTypes", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 41, + "column": 4, + "offset": 1058 + }, + "end": { + "line": 40, + "column": 11, + "offset": 1053 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 34, + "column": 13, + "offset": 820 + }, + "end": { + "line": 34, + "column": 45, + "offset": 852 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 41, + "column": 4, + "offset": 1058 + }, + "end": { + "line": 41, + "column": 16, + "offset": 1070 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatUsesPrimitiveTypesAndReferences", + "type_name": "fnThatUsesPrimitiveTypesAndReferences", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 4, + "offset": 1330 + }, + "end": { + "line": 50, + "column": 11, + "offset": 1325 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 13, + "offset": 1085 + }, + "end": { + "line": 43, + "column": 50, + "offset": 1122 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 4, + "offset": 1330 + }, + "end": { + "line": 51, + "column": 16, + "offset": 1342 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasIntWithRange", + "type_name": "fnThatHasIntWithRange", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 4, + "offset": 1446 + }, + "end": { + "line": 56, + "column": 11, + "offset": 1441 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 53, + "column": 13, + "offset": 1357 + }, + "end": { + "line": 53, + "column": 34, + "offset": 1378 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 4, + "offset": 1446 + }, + "end": { + "line": 57, + "column": 16, + "offset": 1458 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasVariadicIntInput", + "type_name": "fnThatHasVariadicIntInput", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 64, + "column": 4, + "offset": 1595 + }, + "end": { + "line": 63, + "column": 11, + "offset": 1590 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 13, + "offset": 1473 + }, + "end": { + "line": 59, + "column": 38, + "offset": 1498 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 64, + "column": 4, + "offset": 1595 + }, + "end": { + "line": 64, + "column": 16, + "offset": 1607 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasVariadicStringInput", + "type_name": "fnThatHasVariadicStringInput", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 71, + "column": 4, + "offset": 1753 + }, + "end": { + "line": 70, + "column": 11, + "offset": 1748 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 66, + "column": 13, + "offset": 1622 + }, + "end": { + "line": 66, + "column": 41, + "offset": 1650 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 71, + "column": 4, + "offset": 1753 + }, + "end": { + "line": 71, + "column": 16, + "offset": 1765 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fnThatHasVariadicComplexTypeInput", + "type_name": "fnThatHasVariadicComplexTypeInput", + "linkage": "Internal", + "pou_type": "Function", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 78, + "column": 4, + "offset": 1934 + }, + "end": { + "line": 77, + "column": 11, + "offset": 1929 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 73, + "column": 13, + "offset": 1780 + }, + "end": { + "line": 73, + "column": 46, + "offset": 1813 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 78, + "column": 4, + "offset": 1934 + }, + "end": { + "line": 78, + "column": 16, + "offset": 1946 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 1, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 18, + "offset": 48 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 18, + "offset": 48 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 5, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 18, + "offset": 74 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 6, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 18, + "offset": 74 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 8, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 9, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 18, + "offset": 100 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 10, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 18, + "offset": 100 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 12, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + ] + }, + "id": 13, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithPrimitiveTypes", + "variables": [ + { + "name": "Field1", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 21, + "offset": 203 + }, + "end": { + "line": 10, + "column": 25, + "offset": 207 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 12, + "offset": 194 + }, + "end": { + "line": 10, + "column": 18, + "offset": 200 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "Field2", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 21, + "offset": 230 + }, + "end": { + "line": 11, + "column": 24, + "offset": 233 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 12, + "offset": 221 + }, + "end": { + "line": 11, + "column": 18, + "offset": 227 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "Field3", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 21, + "offset": 256 + }, + "end": { + "line": 12, + "column": 25, + "offset": 260 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 12, + "offset": 247 + }, + "end": { + "line": 12, + "column": 18, + "offset": 253 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 9, + "offset": 141 + }, + "end": { + "line": 8, + "column": 33, + "offset": 165 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "StructWithComplexTypes", + "variables": [ + { + "name": "byteField", + "data_type_declaration": { + "Reference": { + "referenced_type": "BYTE", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 24, + "offset": 367 + }, + "end": { + "line": 18, + "column": 28, + "offset": 371 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 12, + "offset": 355 + }, + "end": { + "line": 18, + "column": 21, + "offset": 364 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "intField", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 23, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 399 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 12, + "offset": 385 + }, + "end": { + "line": 19, + "column": 20, + "offset": 393 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "dIntField", + "data_type_declaration": { + "Reference": { + "referenced_type": "DINT", + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 24, + "offset": 425 + }, + "end": { + "line": 20, + "column": 28, + "offset": 429 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 12, + "offset": 413 + }, + "end": { + "line": 20, + "column": 21, + "offset": 422 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "stringField", + "data_type_declaration": { + "Definition": { + "data_type": { + "StringType": { + "name": null, + "is_wide": false, + "size": { + "stmt": { + "Literal": { + "Integer": 255 + } + }, + "id": 14, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 33, + "offset": 464 + }, + "end": { + "line": 21, + "column": 36, + "offset": 467 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 26, + "offset": 457 + }, + "end": { + "line": 21, + "column": 37, + "offset": 468 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 12, + "offset": 443 + }, + "end": { + "line": 21, + "column": 23, + "offset": 454 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "wStringField", + "data_type_declaration": { + "Definition": { + "data_type": { + "StringType": { + "name": null, + "is_wide": true, + "size": { + "stmt": { + "Literal": { + "Integer": 6000 + } + }, + "id": 15, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 35, + "offset": 505 + }, + "end": { + "line": 22, + "column": 39, + "offset": 509 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 27, + "offset": 497 + }, + "end": { + "line": 22, + "column": 40, + "offset": 510 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 12, + "offset": 482 + }, + "end": { + "line": 22, + "column": 24, + "offset": 494 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "complexEnumTypeField", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 35, + "offset": 547 + }, + "end": { + "line": 23, + "column": 50, + "offset": 562 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 12, + "offset": 524 + }, + "end": { + "line": 23, + "column": 32, + "offset": 544 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + }, + { + "name": "intArrayField", + "data_type_declaration": { + "Definition": { + "data_type": { + "ArrayType": { + "name": null, + "bounds": { + "stmt": { + "RangeStatement": { + "start": { + "stmt": { + "Literal": { + "Integer": 0 + } + }, + "id": 16, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 34, + "offset": 598 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "end": { + "stmt": { + "Literal": { + "Integer": 9 + } + }, + "id": 17, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 36, + "offset": 600 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + } + } + }, + "id": 18, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 33, + "offset": 597 + }, + "end": { + "line": 24, + "column": 37, + "offset": 601 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "metadata": null + }, + "referenced_type": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 42, + "offset": 606 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + }, + "is_variable_length": false + } + }, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 27, + "offset": 591 + }, + "end": { + "line": 24, + "column": 45, + "offset": 609 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 24, + "column": 12, + "offset": 576 + }, + "end": { + "line": 24, + "column": 25, + "offset": 589 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 16, + "column": 9, + "offset": 304 + }, + "end": { + "line": 16, + "column": 31, + "offset": 326 + } + } + }, + "file": { + "File": "functions_with_complex_types.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "functions_with_complex_types.pli" + } + } + ] + }, + "context": { + "sources": { + "functions_with_complex_types.pli": { + "source": "\n TYPE ComplexEnumType : (\n orange := 10,\n yellow := 20,\n purple := 30\n );\n END_TYPE\n\n TYPE StructWithPrimitiveTypes:\n STRUCT\n Field1 : BYTE;\n Field2 : INT;\n Field3 : DINT;\n END_STRUCT\n END_TYPE\n\n TYPE StructWithComplexTypes:\n STRUCT\n byteField : BYTE;\n intField : INT;\n dIntField : DINT;\n stringField : STRING[255];\n wStringField : WSTRING[6000];\n complexEnumTypeField : ComplexEnumType;\n intArrayField: ARRAY[0..9] OF INT;\n END_STRUCT\n END_TYPE\n\n FUNCTION fnThatUsesStructWithPrimitiveTypes: StructWithPrimitiveTypes\n VAR_INPUT\n varStruct: StructWithPrimitiveTypes;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatUsesStructWithComplexTypes: StructWithComplexTypes\n VAR_INPUT\n varStruct: StructWithComplexTypes;\n varEnum: ComplexEnumType;\n varString: STRING[200];\n varIntArray: ARRAY[0..14] OF INT;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatUsesPrimitiveTypesAndReferences\n VAR_INPUT\n varInt: INT;\n varRefToInt: REFERENCE TO INT;\n varPointerToInt: REF_TO INT;\n varRefToDate: REFERENCE TO DATE;\n varPointerToDate: REF_TO DATE;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatHasIntWithRange\n VAR_INPUT\n varIntWithRange: INT(0..99);\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatHasVariadicIntInput\n VAR_INPUT\n varIntInput: INT;\n varVariadicInt: {sized} INT...;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatHasVariadicStringInput\n VAR_INPUT\n varIntInput: INT;\n varVariadicString: {sized} STRING...;\n END_VAR\n END_FUNCTION\n\n FUNCTION fnThatHasVariadicComplexTypeInput\n VAR_INPUT\n varIntInput: INT;\n varVariadicStruct: {sized} StructWithPrimitiveTypes...;\n END_VAR\n END_FUNCTION\n ", + "path": "functions_with_complex_types.pli" + } + }, + "provider": { + "current_id": 33 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_7_function_blocks_annotated_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_7_function_blocks_annotated_content.snap new file mode 100644 index 0000000000..a272f933ce --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_7_function_blocks_annotated_content.snap @@ -0,0 +1,8405 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "units": [ + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__vtable_fbThatHasSimpleTypes_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbThatHasSimpleTypes", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 2, + "name": "fbThatHasSimpleTypes", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__vtable", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fbThatHasSimpleTypes___vtable", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 17, + "offset": 66 + }, + "end": { + "line": 3, + "column": 20, + "offset": 69 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 57 + }, + "end": { + "line": 3, + "column": 14, + "offset": 63 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 4, + "offset": 45 + }, + "end": { + "line": 2, + "column": 7, + "offset": 48 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "outVarInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 20, + "offset": 118 + }, + "end": { + "line": 6, + "column": 23, + "offset": 121 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 8, + "offset": 106 + }, + "end": { + "line": 6, + "column": 17, + "offset": 115 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Output", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 87 + }, + "end": { + "line": 5, + "column": 14, + "offset": 97 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "inOutVarInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 22, + "offset": 172 + }, + "end": { + "line": 9, + "column": 25, + "offset": 175 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 158 + }, + "end": { + "line": 9, + "column": 19, + "offset": 169 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 139 + }, + "end": { + "line": 8, + "column": 14, + "offset": 149 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 13, + "column": 22, + "offset": 253 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 1, + "name": "fbThatHasSimpleTypes.FB_INIT", + "kind": { + "Method": { + "parent": "fbThatHasSimpleTypes", + "property": null, + "declaration_kind": "Concrete" + } + }, + "variable_blocks": [], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 197 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fbThatHasSimpleTypes.FB_INIT", + "type_name": "fbThatHasSimpleTypes.FB_INIT", + "linkage": "Internal", + "pou_type": { + "Method": { + "parent": "fbThatHasSimpleTypes", + "property": null, + "declaration_kind": "Concrete" + } + }, + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 220 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 220 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "overriding": false, + "generic": false, + "access": "Protected" + }, + { + "name": "fbThatHasSimpleTypes", + "type_name": "fbThatHasSimpleTypes", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 235 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 235 + }, + "end": { + "line": 13, + "column": 22, + "offset": 253 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StructType": { + "name": "__vtable_fbThatHasSimpleTypes", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbThatHasSimpleTypes___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "name": "FB_INIT", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__fbThatHasSimpleTypes___vtable", + "referenced_type": { + "Reference": { + "referenced_type": "__VOID", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbThatHasSimpleTypes___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbThatHasSimpleTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 13, + "column": 22, + "offset": 253 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "referenced_type": { + "Reference": { + "referenced_type": "fbThatHasSimpleTypes.FB_INIT", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "function_blocks.pli" + } + }, + "dependencies": [ + { + "Variable": "__vtable_fbThatHasSimpleTypes_instance" + }, + { + "Datatype": "__vtable_fbThatHasSimpleTypes" + }, + { + "Datatype": "____vtable_fbThatHasSimpleTypes___body" + }, + { + "Datatype": "fbThatHasSimpleTypes" + }, + { + "Datatype": "__fbThatHasSimpleTypes___vtable" + }, + { + "Datatype": "__VOID" + }, + { + "Datatype": "INT" + }, + { + "Datatype": "__auto_pointer_to_INT" + }, + { + "Datatype": "____vtable_fbThatHasSimpleTypes_FB_INIT" + }, + { + "Datatype": "fbThatHasSimpleTypes.FB_INIT" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + }, + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 76, + "name": "__init___vtable_fbthathassimpletypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbThatHasSimpleTypes", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 87, + "name": "__init_fbthathassimpletypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbThatHasSimpleTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 69, + "name": "__user_init___vtable_fbThatHasSimpleTypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbThatHasSimpleTypes", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 70, + "name": "__user_init_fbThatHasSimpleTypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbThatHasSimpleTypes", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___vtable_fbthathassimpletypes", + "type_name": "__init___vtable_fbthathassimpletypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__body" + }, + "id": 77, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 79, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 80, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 78, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 21, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 22, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbThatHasSimpleTypes" + }, + "id": 23, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 24, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 25, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 81, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "FB_INIT" + }, + "id": 82, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 84, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 85, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 83, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 26, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 27, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "FB_INIT" + }, + "id": 28, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbThatHasSimpleTypes" + }, + "id": 29, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 30, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 31, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 32, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 86, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_fbthathassimpletypes", + "type_name": "__init_fbthathassimpletypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable" + }, + "id": 88, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 89, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 90, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 91, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 92, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 93, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbThatHasSimpleTypes_instance" + }, + "id": 94, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 95, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 96, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 97, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init___vtable_fbThatHasSimpleTypes", + "type_name": "__user_init___vtable_fbThatHasSimpleTypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_fbThatHasSimpleTypes", + "type_name": "__user_init_fbThatHasSimpleTypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fb_init" + }, + "id": 73, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 71, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 72, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 74, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": null + } + }, + "id": 75, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__initializers" + } + }, + "dependencies": [ + { + "Datatype": "__init___vtable_fbthathassimpletypes" + }, + { + "Datatype": "__vtable_fbThatHasSimpleTypes" + }, + { + "Datatype": "____vtable_fbThatHasSimpleTypes___body" + }, + { + "Datatype": "fbThatHasSimpleTypes" + }, + { + "Datatype": "__fbThatHasSimpleTypes___vtable" + }, + { + "Datatype": "__VOID" + }, + { + "Datatype": "INT" + }, + { + "Datatype": "__auto_pointer_to_INT" + }, + { + "Datatype": "____vtable_fbThatHasSimpleTypes_FB_INIT" + }, + { + "Datatype": "fbThatHasSimpleTypes.FB_INIT" + }, + { + "Datatype": "__init_fbthathassimpletypes" + }, + { + "Datatype": "__user_init___vtable_fbThatHasSimpleTypes" + }, + { + "Datatype": "__user_init_fbThatHasSimpleTypes" + }, + { + "Datatype": "__auto_pointer_to___vtable_fbThatHasSimpleTypes" + }, + { + "Call": "ADR" + }, + { + "Datatype": "ADR" + }, + { + "Datatype": "__ADR__U" + }, + { + "Datatype": "LWORD" + }, + { + "Call": "fbThatHasSimpleTypes.FB_INIT" + }, + { + "Datatype": "__auto_pointer_to_fbThatHasSimpleTypes" + }, + { + "Variable": "__vtable_fbThatHasSimpleTypes_instance" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + }, + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 98, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init___vtable_fbthathassimpletypes" + }, + "id": 99, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 100, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbThatHasSimpleTypes_instance" + }, + "id": 101, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 102, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 103, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init___vtable_fbThatHasSimpleTypes" + }, + "id": 104, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 105, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbThatHasSimpleTypes_instance" + }, + "id": 106, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 107, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 108, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + }, + "dependencies": [ + { + "Datatype": "__init___TestProject" + }, + { + "Call": "__init___vtable_fbthathassimpletypes" + }, + { + "Datatype": "__init___vtable_fbthathassimpletypes" + }, + { + "Datatype": "__auto_pointer_to___vtable_fbThatHasSimpleTypes" + }, + { + "Datatype": "__vtable_fbThatHasSimpleTypes" + }, + { + "Datatype": "____vtable_fbThatHasSimpleTypes___body" + }, + { + "Datatype": "fbThatHasSimpleTypes" + }, + { + "Datatype": "__fbThatHasSimpleTypes___vtable" + }, + { + "Datatype": "__VOID" + }, + { + "Datatype": "INT" + }, + { + "Datatype": "__auto_pointer_to_INT" + }, + { + "Datatype": "____vtable_fbThatHasSimpleTypes_FB_INIT" + }, + { + "Datatype": "fbThatHasSimpleTypes.FB_INIT" + }, + { + "Variable": "__vtable_fbThatHasSimpleTypes_instance" + }, + { + "Call": "__user_init___vtable_fbThatHasSimpleTypes" + }, + { + "Datatype": "__user_init___vtable_fbThatHasSimpleTypes" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + } + ], + "index": { + "global_variables": { + "inner_map": { + "__vtable_fbthathassimpletypes_instance": [ + { + "name": "__vtable_fbThatHasSimpleTypes_instance", + "qualified_name": "__vtable_fbThatHasSimpleTypes_instance", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__vtable_fbThatHasSimpleTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + } + ] + } + }, + "global_initializers": { + "inner_map": { + "____vtable_fbthathassimpletypes__init": [ + { + "name": "____vtable_fbThatHasSimpleTypes__init", + "qualified_name": "____vtable_fbThatHasSimpleTypes__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "__vtable_fbThatHasSimpleTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + } + ], + "__fbthathassimpletypes__init": [ + { + "name": "__fbThatHasSimpleTypes__init", + "qualified_name": "__fbThatHasSimpleTypes__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "fbThatHasSimpleTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + } + ] + } + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": { + "fbthathassimpletypes": [ + { + "FunctionBlock": { + "name": "fbThatHasSimpleTypes", + "instance_struct_name": "fbThatHasSimpleTypes", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "super_class": null, + "interfaces": [], + "properties": {} + } + } + ], + "fbthathassimpletypes.fb_init": [ + { + "Method": { + "name": "fbThatHasSimpleTypes.FB_INIT", + "parent_name": "fbThatHasSimpleTypes", + "property": null, + "declaration_kind": "Concrete", + "return_type": "VOID", + "instance_struct_name": "fbThatHasSimpleTypes.FB_INIT", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + } + ], + "__init___vtable_fbthathassimpletypes": [ + { + "Function": { + "name": "__init___vtable_fbthathassimpletypes", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init_fbthathassimpletypes": [ + { + "Function": { + "name": "__init_fbthathassimpletypes", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init___vtable_fbthathassimpletypes": [ + { + "Function": { + "name": "__user_init___vtable_fbThatHasSimpleTypes", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init_fbthathassimpletypes": [ + { + "Function": { + "name": "__user_init_fbThatHasSimpleTypes", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init___testproject": [ + { + "Function": { + "name": "__init___TestProject", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "fbthathassimpletypes.fb_init": { + "call_name": "fbThatHasSimpleTypes.FB_INIT", + "type_name": "fbThatHasSimpleTypes.FB_INIT", + "associated_class": "fbThatHasSimpleTypes", + "implementation_type": "Method", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 220 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + }, + "fbthathassimpletypes": { + "call_name": "fbThatHasSimpleTypes", + "type_name": "fbThatHasSimpleTypes", + "associated_class": null, + "implementation_type": "FunctionBlock", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 235 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + }, + "__init___vtable_fbthathassimpletypes": { + "call_name": "__init___vtable_fbthathassimpletypes", + "type_name": "__init___vtable_fbthathassimpletypes", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "__init_fbthathassimpletypes": { + "call_name": "__init_fbthathassimpletypes", + "type_name": "__init_fbthathassimpletypes", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "__user_init___vtable_fbthathassimpletypes": { + "call_name": "__user_init___vtable_fbThatHasSimpleTypes", + "type_name": "__user_init___vtable_fbThatHasSimpleTypes", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__user_init_fbthathassimpletypes": { + "call_name": "__user_init_fbThatHasSimpleTypes", + "type_name": "__user_init_fbThatHasSimpleTypes", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__init___testproject": { + "call_name": "__init___TestProject", + "type_name": "__init___TestProject", + "associated_class": null, + "implementation_type": "ProjectInit", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "__vtable_fbthathassimpletypes": [ + { + "name": "__vtable_fbThatHasSimpleTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__vtable_fbThatHasSimpleTypes", + "members": [ + { + "name": "__body", + "qualified_name": "__vtable_fbThatHasSimpleTypes.__body", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "____vtable_fbThatHasSimpleTypes___body", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + }, + { + "name": "FB_INIT", + "qualified_name": "__vtable_fbThatHasSimpleTypes.FB_INIT", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "__fbthathassimpletypes___vtable": [ + { + "name": "__fbThatHasSimpleTypes___vtable", + "initial_value": null, + "information": { + "Pointer": { + "name": "__fbThatHasSimpleTypes___vtable", + "inner_type_name": "__VOID", + "auto_deref": null, + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "____vtable_fbthathassimpletypes___body": [ + { + "name": "____vtable_fbThatHasSimpleTypes___body", + "initial_value": null, + "information": { + "Pointer": { + "name": "____vtable_fbThatHasSimpleTypes___body", + "inner_type_name": "fbThatHasSimpleTypes", + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "____vtable_fbthathassimpletypes_fb_init": [ + { + "name": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "initial_value": null, + "information": { + "Pointer": { + "name": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "inner_type_name": "fbThatHasSimpleTypes.FB_INIT", + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "__auto_pointer_to_int": [ + { + "name": "__auto_pointer_to_INT", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_INT", + "inner_type_name": "INT", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___vtable_fbthathassimpletypes": [ + { + "name": "__auto_pointer_to___vtable_fbThatHasSimpleTypes", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___vtable_fbThatHasSimpleTypes", + "inner_type_name": "__vtable_fbThatHasSimpleTypes", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to_fbthathassimpletypes": [ + { + "name": "__auto_pointer_to_fbThatHasSimpleTypes", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_fbThatHasSimpleTypes", + "inner_type_name": "fbThatHasSimpleTypes", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "fbthathassimpletypes": [ + { + "name": "fbThatHasSimpleTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "fbThatHasSimpleTypes", + "members": [ + { + "name": "__vtable", + "qualified_name": "fbThatHasSimpleTypes.__vtable", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fbThatHasSimpleTypes___vtable", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + }, + { + "name": "varInt", + "qualified_name": "fbThatHasSimpleTypes.varInt", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 57 + }, + "end": { + "line": 3, + "column": 14, + "offset": 63 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + }, + { + "name": "outVarInt", + "qualified_name": "fbThatHasSimpleTypes.outVarInt", + "initial_value": null, + "argument_type": { + "ByVal": "Output" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 8, + "offset": 106 + }, + "end": { + "line": 6, + "column": 17, + "offset": 115 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + }, + { + "name": "inOutVarInt", + "qualified_name": "fbThatHasSimpleTypes.inOutVarInt", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_INT", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 158 + }, + "end": { + "line": 9, + "column": 19, + "offset": 169 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "FunctionBlock" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "fbthathassimpletypes.fb_init": [ + { + "name": "fbThatHasSimpleTypes.FB_INIT", + "initial_value": null, + "information": { + "Struct": { + "name": "fbThatHasSimpleTypes.FB_INIT", + "members": [], + "source": { + "Pou": { + "Method": { + "parent": "fbThatHasSimpleTypes", + "property": null, + "declaration_kind": "Concrete" + } + } + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "__init___vtable_fbthathassimpletypes": [ + { + "name": "__init___vtable_fbthathassimpletypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__init___vtable_fbthathassimpletypes", + "members": [ + { + "name": "self", + "qualified_name": "__init___vtable_fbthathassimpletypes.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___vtable_fbThatHasSimpleTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + } + } + ], + "__init_fbthathassimpletypes": [ + { + "name": "__init_fbthathassimpletypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__init_fbthathassimpletypes", + "members": [ + { + "name": "self", + "qualified_name": "__init_fbthathassimpletypes.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_fbThatHasSimpleTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + } + } + ], + "__user_init___vtable_fbthathassimpletypes": [ + { + "name": "__user_init___vtable_fbThatHasSimpleTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init___vtable_fbThatHasSimpleTypes", + "members": [ + { + "name": "self", + "qualified_name": "__user_init___vtable_fbThatHasSimpleTypes.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___vtable_fbThatHasSimpleTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__user_init_fbthathassimpletypes": [ + { + "name": "__user_init_fbThatHasSimpleTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init_fbThatHasSimpleTypes", + "members": [ + { + "name": "self", + "qualified_name": "__user_init_fbThatHasSimpleTypes.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_fbThatHasSimpleTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__init___testproject": [ + { + "name": "__init___TestProject", + "initial_value": null, + "information": { + "Struct": { + "name": "__init___TestProject", + "members": [], + "source": { + "Pou": "ProjectInit" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "annotations": { + "annotation_map": { + "type_map": { + "2": { + "MethodDeclarations": { + "declarations": { + "FB_INIT": [ + { + "Concrete": "fbThatHasSimpleTypes.FB_INIT" + } + ] + } + } + }, + "22": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": "ADR", + "call_name": "ADR" + } + }, + "21": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": null, + "call_name": null + } + }, + "24": { + "Type": { + "type_name": "fbThatHasSimpleTypes" + } + }, + "23": { + "Type": { + "type_name": "fbThatHasSimpleTypes" + } + }, + "25": { + "Value": { + "resulting_type": "LWORD" + } + }, + "80": { + "Variable": { + "resulting_type": "__vtable_fbThatHasSimpleTypes", + "qualified_name": "__init___vtable_fbthathassimpletypes.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "79": { + "Variable": { + "resulting_type": "__vtable_fbThatHasSimpleTypes", + "qualified_name": "__init___vtable_fbthathassimpletypes.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "78": { + "Variable": { + "resulting_type": "____vtable_fbThatHasSimpleTypes___body", + "qualified_name": "__vtable_fbThatHasSimpleTypes.__body", + "constant": false, + "argument_type": { + "ByVal": "Input" + }, + "auto_deref": null + } + }, + "77": { + "Variable": { + "resulting_type": "____vtable_fbThatHasSimpleTypes___body", + "qualified_name": "__vtable_fbThatHasSimpleTypes.__body", + "constant": false, + "argument_type": { + "ByVal": "Input" + }, + "auto_deref": null + } + }, + "27": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": "ADR", + "call_name": "ADR" + } + }, + "26": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": null, + "call_name": null + } + }, + "30": { + "Type": { + "type_name": "fbThatHasSimpleTypes" + } + }, + "29": { + "Type": { + "type_name": "fbThatHasSimpleTypes" + } + }, + "31": { + "Function": { + "return_type": "VOID", + "qualified_name": "fbThatHasSimpleTypes.FB_INIT", + "generic_name": null, + "call_name": null + } + }, + "28": { + "Function": { + "return_type": "VOID", + "qualified_name": "fbThatHasSimpleTypes.FB_INIT", + "generic_name": null, + "call_name": null + } + }, + "32": { + "Value": { + "resulting_type": "LWORD" + } + }, + "85": { + "Variable": { + "resulting_type": "__vtable_fbThatHasSimpleTypes", + "qualified_name": "__init___vtable_fbthathassimpletypes.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "84": { + "Variable": { + "resulting_type": "__vtable_fbThatHasSimpleTypes", + "qualified_name": "__init___vtable_fbthathassimpletypes.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "83": { + "Variable": { + "resulting_type": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "qualified_name": "__vtable_fbThatHasSimpleTypes.FB_INIT", + "constant": false, + "argument_type": { + "ByVal": "Input" + }, + "auto_deref": null + } + }, + "82": { + "Variable": { + "resulting_type": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "qualified_name": "__vtable_fbThatHasSimpleTypes.FB_INIT", + "constant": false, + "argument_type": { + "ByVal": "Input" + }, + "auto_deref": null + } + }, + "93": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": "ADR", + "call_name": "ADR" + } + }, + "92": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": null, + "call_name": null + } + }, + "95": { + "Variable": { + "resulting_type": "__vtable_fbThatHasSimpleTypes", + "qualified_name": "__vtable_fbThatHasSimpleTypes_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "94": { + "Variable": { + "resulting_type": "__vtable_fbThatHasSimpleTypes", + "qualified_name": "__vtable_fbThatHasSimpleTypes_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "96": { + "Value": { + "resulting_type": "LWORD" + } + }, + "90": { + "Variable": { + "resulting_type": "fbThatHasSimpleTypes", + "qualified_name": "__init_fbthathassimpletypes.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "89": { + "Variable": { + "resulting_type": "fbThatHasSimpleTypes", + "qualified_name": "__init_fbthathassimpletypes.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "91": { + "Variable": { + "resulting_type": "__fbThatHasSimpleTypes___vtable", + "qualified_name": "fbThatHasSimpleTypes.__vtable", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "88": { + "Variable": { + "resulting_type": "__fbThatHasSimpleTypes___vtable", + "qualified_name": "fbThatHasSimpleTypes.__vtable", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "72": { + "Variable": { + "resulting_type": "fbThatHasSimpleTypes", + "qualified_name": "__user_init_fbThatHasSimpleTypes.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "71": { + "Variable": { + "resulting_type": "fbThatHasSimpleTypes", + "qualified_name": "__user_init_fbThatHasSimpleTypes.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "74": { + "Function": { + "return_type": "VOID", + "qualified_name": "fbThatHasSimpleTypes.FB_INIT", + "generic_name": null, + "call_name": null + } + }, + "73": { + "Function": { + "return_type": "VOID", + "qualified_name": "fbThatHasSimpleTypes.FB_INIT", + "generic_name": null, + "call_name": null + } + }, + "75": { + "Value": { + "resulting_type": "__VOID" + } + }, + "100": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init___vtable_fbthathassimpletypes", + "generic_name": null, + "call_name": null + } + }, + "99": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init___vtable_fbthathassimpletypes", + "generic_name": null, + "call_name": null + } + }, + "102": { + "Variable": { + "resulting_type": "__vtable_fbThatHasSimpleTypes", + "qualified_name": "__vtable_fbThatHasSimpleTypes_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "101": { + "Variable": { + "resulting_type": "__vtable_fbThatHasSimpleTypes", + "qualified_name": "__vtable_fbThatHasSimpleTypes_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "103": { + "Value": { + "resulting_type": "__VOID" + } + }, + "105": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init___vtable_fbThatHasSimpleTypes", + "generic_name": null, + "call_name": null + } + }, + "104": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init___vtable_fbThatHasSimpleTypes", + "generic_name": null, + "call_name": null + } + }, + "107": { + "Variable": { + "resulting_type": "__vtable_fbThatHasSimpleTypes", + "qualified_name": "__vtable_fbThatHasSimpleTypes_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "106": { + "Variable": { + "resulting_type": "__vtable_fbThatHasSimpleTypes", + "qualified_name": "__vtable_fbThatHasSimpleTypes_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "108": { + "Value": { + "resulting_type": "__VOID" + } + } + }, + "type_hint_map": { + "24": { + "Value": { + "resulting_type": "fbThatHasSimpleTypes" + } + }, + "25": { + "Value": { + "resulting_type": "____vtable_fbThatHasSimpleTypes___body" + } + }, + "31": { + "Value": { + "resulting_type": "fbThatHasSimpleTypes.FB_INIT" + } + }, + "32": { + "Value": { + "resulting_type": "____vtable_fbThatHasSimpleTypes_FB_INIT" + } + }, + "95": { + "Value": { + "resulting_type": "__vtable_fbThatHasSimpleTypes" + } + }, + "96": { + "Value": { + "resulting_type": "__fbThatHasSimpleTypes___vtable" + } + }, + "102": { + "Argument": { + "resulting_type": "__auto_pointer_to___vtable_fbThatHasSimpleTypes", + "position": 0 + } + }, + "107": { + "Argument": { + "resulting_type": "__auto_pointer_to___vtable_fbThatHasSimpleTypes", + "position": 0 + } + } + }, + "generic_nature_map": {}, + "hidden_function_calls": {}, + "new_index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": {} + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": {}, + "type_index": { + "types": { + "inner_map": {} + }, + "pou_types": { + "inner_map": {} + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + } + }, + "bool_id": 131, + "bool_annotation": { + "Value": { + "resulting_type": "BOOL" + } + } + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_7_function_blocks_compilation_units.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_7_function_blocks_compilation_units.snap new file mode 100644 index 0000000000..d6549c05bc --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_7_function_blocks_compilation_units.snap @@ -0,0 +1,2027 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +[ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__vtable_fbThatHasSimpleTypes_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbThatHasSimpleTypes", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 2, + "name": "fbThatHasSimpleTypes", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__vtable", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fbThatHasSimpleTypes___vtable", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 17, + "offset": 66 + }, + "end": { + "line": 3, + "column": 20, + "offset": 69 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 57 + }, + "end": { + "line": 3, + "column": 14, + "offset": 63 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 4, + "offset": 45 + }, + "end": { + "line": 2, + "column": 7, + "offset": 48 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "outVarInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 20, + "offset": 118 + }, + "end": { + "line": 6, + "column": 23, + "offset": 121 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 8, + "offset": 106 + }, + "end": { + "line": 6, + "column": 17, + "offset": 115 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Output", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 87 + }, + "end": { + "line": 5, + "column": 14, + "offset": 97 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "inOutVarInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 22, + "offset": 172 + }, + "end": { + "line": 9, + "column": 25, + "offset": 175 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 158 + }, + "end": { + "line": 9, + "column": 19, + "offset": 169 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 139 + }, + "end": { + "line": 8, + "column": 14, + "offset": 149 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 13, + "column": 22, + "offset": 253 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 1, + "name": "fbThatHasSimpleTypes.FB_INIT", + "kind": { + "Method": { + "parent": "fbThatHasSimpleTypes", + "property": null, + "declaration_kind": "Concrete" + } + }, + "variable_blocks": [], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 197 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fbThatHasSimpleTypes.FB_INIT", + "type_name": "fbThatHasSimpleTypes.FB_INIT", + "linkage": "Internal", + "pou_type": { + "Method": { + "parent": "fbThatHasSimpleTypes", + "property": null, + "declaration_kind": "Concrete" + } + }, + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 220 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 220 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "overriding": false, + "generic": false, + "access": "Protected" + }, + { + "name": "fbThatHasSimpleTypes", + "type_name": "fbThatHasSimpleTypes", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 235 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 235 + }, + "end": { + "line": 13, + "column": 22, + "offset": 253 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StructType": { + "name": "__vtable_fbThatHasSimpleTypes", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbThatHasSimpleTypes___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "name": "FB_INIT", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__fbThatHasSimpleTypes___vtable", + "referenced_type": { + "Reference": { + "referenced_type": "__VOID", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbThatHasSimpleTypes___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbThatHasSimpleTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 13, + "column": 22, + "offset": 253 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "referenced_type": { + "Reference": { + "referenced_type": "fbThatHasSimpleTypes.FB_INIT", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "function_blocks.pli" + } + }, + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 76, + "name": "__init___vtable_fbthathassimpletypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbThatHasSimpleTypes", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 87, + "name": "__init_fbthathassimpletypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbThatHasSimpleTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 69, + "name": "__user_init___vtable_fbThatHasSimpleTypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbThatHasSimpleTypes", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 70, + "name": "__user_init_fbThatHasSimpleTypes", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbThatHasSimpleTypes", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___vtable_fbthathassimpletypes", + "type_name": "__init___vtable_fbthathassimpletypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__body" + }, + "id": 77, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 79, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 80, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 78, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 21, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 22, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbThatHasSimpleTypes" + }, + "id": 23, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 24, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 25, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 81, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "FB_INIT" + }, + "id": 82, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 84, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 85, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 83, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 26, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 27, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "FB_INIT" + }, + "id": 28, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbThatHasSimpleTypes" + }, + "id": 29, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 30, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 31, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 32, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 86, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "function_blocks.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_fbthathassimpletypes", + "type_name": "__init_fbthathassimpletypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable" + }, + "id": 88, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 89, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 90, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 91, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 92, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 93, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbThatHasSimpleTypes_instance" + }, + "id": 94, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 95, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 96, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 97, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "Internal": "function_blocks.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init___vtable_fbThatHasSimpleTypes", + "type_name": "__user_init___vtable_fbThatHasSimpleTypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_fbThatHasSimpleTypes", + "type_name": "__user_init_fbThatHasSimpleTypes", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fb_init" + }, + "id": 73, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 71, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 72, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 74, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": null + } + }, + "id": 75, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__initializers" + } + }, + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 98, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init___vtable_fbthathassimpletypes" + }, + "id": 99, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 100, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbThatHasSimpleTypes_instance" + }, + "id": 101, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 102, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 103, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init___vtable_fbThatHasSimpleTypes" + }, + "id": 104, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 105, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbThatHasSimpleTypes_instance" + }, + "id": 106, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 107, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 108, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + } +] diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_7_function_blocks_indexed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_7_function_blocks_indexed_content.snap new file mode 100644 index 0000000000..6052c61bfe --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_7_function_blocks_indexed_content.snap @@ -0,0 +1,6807 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "indexed_project": { + "project": { + "units": [ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__vtable_fbThatHasSimpleTypes_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbThatHasSimpleTypes", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 2, + "name": "fbThatHasSimpleTypes", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__vtable", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fbThatHasSimpleTypes___vtable", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 17, + "offset": 66 + }, + "end": { + "line": 3, + "column": 20, + "offset": 69 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 57 + }, + "end": { + "line": 3, + "column": 14, + "offset": 63 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 4, + "offset": 45 + }, + "end": { + "line": 2, + "column": 7, + "offset": 48 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "outVarInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 20, + "offset": 118 + }, + "end": { + "line": 6, + "column": 23, + "offset": 121 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 8, + "offset": 106 + }, + "end": { + "line": 6, + "column": 17, + "offset": 115 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Output", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 87 + }, + "end": { + "line": 5, + "column": 14, + "offset": 97 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "inOutVarInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 22, + "offset": 172 + }, + "end": { + "line": 9, + "column": 25, + "offset": 175 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 158 + }, + "end": { + "line": 9, + "column": 19, + "offset": 169 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 139 + }, + "end": { + "line": 8, + "column": 14, + "offset": 149 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 13, + "column": 22, + "offset": 253 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 1, + "name": "fbThatHasSimpleTypes.FB_INIT", + "kind": { + "Method": { + "parent": "fbThatHasSimpleTypes", + "property": null, + "declaration_kind": "Concrete" + } + }, + "variable_blocks": [], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 197 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fbThatHasSimpleTypes.FB_INIT", + "type_name": "fbThatHasSimpleTypes.FB_INIT", + "linkage": "Internal", + "pou_type": { + "Method": { + "parent": "fbThatHasSimpleTypes", + "property": null, + "declaration_kind": "Concrete" + } + }, + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 220 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 220 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "overriding": false, + "generic": false, + "access": "Protected" + }, + { + "name": "fbThatHasSimpleTypes", + "type_name": "fbThatHasSimpleTypes", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 235 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 235 + }, + "end": { + "line": 13, + "column": 22, + "offset": 253 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StructType": { + "name": "__vtable_fbThatHasSimpleTypes", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbThatHasSimpleTypes___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 21, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 22, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbThatHasSimpleTypes" + }, + "id": 23, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 24, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 25, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "name": "FB_INIT", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 26, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 27, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "FB_INIT" + }, + "id": 28, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbThatHasSimpleTypes" + }, + "id": 29, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 30, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 31, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 32, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__fbThatHasSimpleTypes___vtable", + "referenced_type": { + "Reference": { + "referenced_type": "__VOID", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbThatHasSimpleTypes___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbThatHasSimpleTypes", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 13, + "column": 22, + "offset": 253 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "referenced_type": { + "Reference": { + "referenced_type": "fbThatHasSimpleTypes.FB_INIT", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "function_blocks.pli" + } + } + ] + }, + "index": { + "global_variables": { + "inner_map": { + "__vtable_fbthathassimpletypes_instance": [ + { + "name": "__vtable_fbThatHasSimpleTypes_instance", + "qualified_name": "__vtable_fbThatHasSimpleTypes_instance", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__vtable_fbThatHasSimpleTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + } + ] + } + }, + "global_initializers": { + "inner_map": { + "____vtable_fbthathassimpletypes__init": [ + { + "name": "____vtable_fbThatHasSimpleTypes__init", + "qualified_name": "____vtable_fbThatHasSimpleTypes__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "__vtable_fbThatHasSimpleTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + } + ], + "__fbthathassimpletypes__init": [ + { + "name": "__fbThatHasSimpleTypes__init", + "qualified_name": "__fbThatHasSimpleTypes__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "fbThatHasSimpleTypes", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + } + ] + } + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": { + "fbthathassimpletypes": [ + { + "FunctionBlock": { + "name": "fbThatHasSimpleTypes", + "instance_struct_name": "fbThatHasSimpleTypes", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "super_class": null, + "interfaces": [], + "properties": {} + } + } + ], + "fbthathassimpletypes.fb_init": [ + { + "Method": { + "name": "fbThatHasSimpleTypes.FB_INIT", + "parent_name": "fbThatHasSimpleTypes", + "property": null, + "declaration_kind": "Concrete", + "return_type": "VOID", + "instance_struct_name": "fbThatHasSimpleTypes.FB_INIT", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "fbthathassimpletypes.fb_init": { + "call_name": "fbThatHasSimpleTypes.FB_INIT", + "type_name": "fbThatHasSimpleTypes.FB_INIT", + "associated_class": "fbThatHasSimpleTypes", + "implementation_type": "Method", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 220 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + }, + "fbthathassimpletypes": { + "call_name": "fbThatHasSimpleTypes", + "type_name": "fbThatHasSimpleTypes", + "associated_class": null, + "implementation_type": "FunctionBlock", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 235 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "__vtable_fbthathassimpletypes": [ + { + "name": "__vtable_fbThatHasSimpleTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "__vtable_fbThatHasSimpleTypes", + "members": [ + { + "name": "__body", + "qualified_name": "__vtable_fbThatHasSimpleTypes.__body", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "____vtable_fbThatHasSimpleTypes___body", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + }, + { + "name": "FB_INIT", + "qualified_name": "__vtable_fbThatHasSimpleTypes.FB_INIT", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "__fbthathassimpletypes___vtable": [ + { + "name": "__fbThatHasSimpleTypes___vtable", + "initial_value": null, + "information": { + "Pointer": { + "name": "__fbThatHasSimpleTypes___vtable", + "inner_type_name": "__VOID", + "auto_deref": null, + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "____vtable_fbthathassimpletypes___body": [ + { + "name": "____vtable_fbThatHasSimpleTypes___body", + "initial_value": null, + "information": { + "Pointer": { + "name": "____vtable_fbThatHasSimpleTypes___body", + "inner_type_name": "fbThatHasSimpleTypes", + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "____vtable_fbthathassimpletypes_fb_init": [ + { + "name": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "initial_value": null, + "information": { + "Pointer": { + "name": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "inner_type_name": "fbThatHasSimpleTypes.FB_INIT", + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "__auto_pointer_to_int": [ + { + "name": "__auto_pointer_to_INT", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_INT", + "inner_type_name": "INT", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "fbthathassimpletypes": [ + { + "name": "fbThatHasSimpleTypes", + "initial_value": null, + "information": { + "Struct": { + "name": "fbThatHasSimpleTypes", + "members": [ + { + "name": "__vtable", + "qualified_name": "fbThatHasSimpleTypes.__vtable", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fbThatHasSimpleTypes___vtable", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + }, + { + "name": "varInt", + "qualified_name": "fbThatHasSimpleTypes.varInt", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 57 + }, + "end": { + "line": 3, + "column": 14, + "offset": 63 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + }, + { + "name": "outVarInt", + "qualified_name": "fbThatHasSimpleTypes.outVarInt", + "initial_value": null, + "argument_type": { + "ByVal": "Output" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 8, + "offset": 106 + }, + "end": { + "line": 6, + "column": 17, + "offset": 115 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + }, + { + "name": "inOutVarInt", + "qualified_name": "fbThatHasSimpleTypes.inOutVarInt", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_INT", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 158 + }, + "end": { + "line": 9, + "column": 19, + "offset": 169 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "FunctionBlock" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "fbthathassimpletypes.fb_init": [ + { + "name": "fbThatHasSimpleTypes.FB_INIT", + "initial_value": null, + "information": { + "Struct": { + "name": "fbThatHasSimpleTypes.FB_INIT", + "members": [], + "source": { + "Pou": { + "Method": { + "parent": "fbThatHasSimpleTypes", + "property": null, + "declaration_kind": "Concrete" + } + } + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Unresolvable": { + "statement": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 21, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 22, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbThatHasSimpleTypes" + }, + "id": 23, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 24, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 25, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "reason": { + "Address": { + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 21, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 22, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbThatHasSimpleTypes" + }, + "id": 23, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 24, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 25, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "target_type_name": "____vtable_fbThatHasSimpleTypes___body", + "scope": "__vtable_fbThatHasSimpleTypes", + "lhs": "__body" + } + } + } + }, + "target_type_name": "____vtable_fbThatHasSimpleTypes___body" + } + ], + [ + 0, + { + "expr": { + "Unresolvable": { + "statement": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 26, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 27, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "FB_INIT" + }, + "id": 28, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbThatHasSimpleTypes" + }, + "id": 29, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 30, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 31, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 32, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "reason": { + "Address": { + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 26, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 27, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "FB_INIT" + }, + "id": 28, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbThatHasSimpleTypes" + }, + "id": 29, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 30, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 31, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 32, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "target_type_name": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "scope": "__vtable_fbThatHasSimpleTypes", + "lhs": "FB_INIT" + } + } + } + }, + "target_type_name": "____vtable_fbThatHasSimpleTypes_FB_INIT" + } + ], + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "unresolvables": [ + { + "id": [ + 0, + 0 + ], + "kind": { + "Address": { + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 21, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 22, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbThatHasSimpleTypes" + }, + "id": 23, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 24, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 25, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "target_type_name": "____vtable_fbThatHasSimpleTypes___body", + "scope": "__vtable_fbThatHasSimpleTypes", + "lhs": "__body" + } + } + }, + { + "id": [ + 1, + 0 + ], + "kind": { + "Address": { + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 26, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 27, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "FB_INIT" + }, + "id": 28, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbThatHasSimpleTypes" + }, + "id": 29, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 30, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 31, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 32, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "target_type_name": "____vtable_fbThatHasSimpleTypes_FB_INIT", + "scope": "__vtable_fbThatHasSimpleTypes", + "lhs": "FB_INIT" + } + } + } + ] + }, + "context": { + "sources": { + "function_blocks.pli": { + "source": "\n FUNCTION_BLOCK fbThatHasSimpleTypes\n VAR\n varInt : INT;\n END_VAR\n VAR_OUTPUT\n outVarInt : INT;\n END_VAR\n VAR_IN_OUT\n inOutVarInt : INT;\n END_VAR\n METHOD FB_INIT\n END_METHOD\n END_FUNCTION_BLOCK\n ", + "path": "function_blocks.pli" + } + }, + "provider": { + "current_id": 69 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_7_function_blocks_parsed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_7_function_blocks_parsed_content.snap new file mode 100644 index 0000000000..89ca620069 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_7_function_blocks_parsed_content.snap @@ -0,0 +1,514 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "parsed_project": { + "units": [ + { + "global_vars": [], + "var_config": [], + "pous": [ + { + "id": 2, + "name": "fbThatHasSimpleTypes", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 17, + "offset": 66 + }, + "end": { + "line": 3, + "column": 20, + "offset": 69 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 57 + }, + "end": { + "line": 3, + "column": 14, + "offset": 63 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 4, + "offset": 45 + }, + "end": { + "line": 2, + "column": 7, + "offset": 48 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "outVarInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 20, + "offset": 118 + }, + "end": { + "line": 6, + "column": 23, + "offset": 121 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 8, + "offset": 106 + }, + "end": { + "line": 6, + "column": 17, + "offset": 115 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "Output", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 87 + }, + "end": { + "line": 5, + "column": 14, + "offset": 97 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "inOutVarInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 22, + "offset": 172 + }, + "end": { + "line": 9, + "column": 25, + "offset": 175 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 158 + }, + "end": { + "line": 9, + "column": 19, + "offset": 169 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 139 + }, + "end": { + "line": 8, + "column": 14, + "offset": 149 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 13, + "column": 22, + "offset": 253 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 1, + "name": "fbThatHasSimpleTypes.FB_INIT", + "kind": { + "Method": { + "parent": "fbThatHasSimpleTypes", + "property": null, + "declaration_kind": "Concrete" + } + }, + "variable_blocks": [], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 197 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fbThatHasSimpleTypes.FB_INIT", + "type_name": "fbThatHasSimpleTypes.FB_INIT", + "linkage": "Internal", + "pou_type": { + "Method": { + "parent": "fbThatHasSimpleTypes", + "property": null, + "declaration_kind": "Concrete" + } + }, + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 220 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 15, + "offset": 204 + }, + "end": { + "line": 11, + "column": 22, + "offset": 211 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 12, + "column": 8, + "offset": 220 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "overriding": false, + "generic": false, + "access": "Protected" + }, + { + "name": "fbThatHasSimpleTypes", + "type_name": "fbThatHasSimpleTypes", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 235 + }, + "end": { + "line": 12, + "column": 18, + "offset": 230 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 39, + "offset": 40 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 235 + }, + "end": { + "line": 13, + "column": 22, + "offset": 253 + } + } + }, + "file": { + "File": "function_blocks.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "File": "function_blocks.pli" + } + } + ] + }, + "context": { + "sources": { + "function_blocks.pli": { + "source": "\n FUNCTION_BLOCK fbThatHasSimpleTypes\n VAR\n varInt : INT;\n END_VAR\n VAR_OUTPUT\n outVarInt : INT;\n END_VAR\n VAR_IN_OUT\n inOutVarInt : INT;\n END_VAR\n METHOD FB_INIT\n END_METHOD\n END_FUNCTION_BLOCK\n ", + "path": "function_blocks.pli" + } + }, + "provider": { + "current_id": 3 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_8_function_blocks_with_inheritance_annotated_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_8_function_blocks_with_inheritance_annotated_content.snap new file mode 100644 index 0000000000..b0e7c24e00 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_8_function_blocks_with_inheritance_annotated_content.snap @@ -0,0 +1,15709 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "units": [ + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__vtable_fbGreatGrandParent_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGreatGrandParent", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + { + "name": "__vtable_fbGrandParent_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGrandParent", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + { + "name": "__vtable_fbParent_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbParent", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + { + "name": "__vtable_fbChild_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbChild", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 1, + "name": "fbGreatGrandParent", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__vtable", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fbGreatGrandParent___vtable", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varGreatGrandParentInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 32, + "offset": 79 + }, + "end": { + "line": 3, + "column": 35, + "offset": 82 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 55 + }, + "end": { + "line": 3, + "column": 30, + "offset": 77 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 4, + "offset": 43 + }, + "end": { + "line": 2, + "column": 7, + "offset": 46 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 5, + "column": 22, + "offset": 118 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 2, + "name": "fbGrandParent", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__fbGreatGrandParent", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGreatGrandParent", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varGrandParentInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 27, + "offset": 215 + }, + "end": { + "line": 9, + "column": 30, + "offset": 218 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 196 + }, + "end": { + "line": 9, + "column": 25, + "offset": 213 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 184 + }, + "end": { + "line": 8, + "column": 7, + "offset": 187 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 4, + "offset": 124 + }, + "end": { + "line": 11, + "column": 22, + "offset": 254 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": { + "name": "fbGreatGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 41, + "offset": 161 + }, + "end": { + "line": 7, + "column": 59, + "offset": 179 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 3, + "name": "fbParent", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__fbGrandParent", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGrandParent", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varParentInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 22, + "offset": 336 + }, + "end": { + "line": 15, + "column": 25, + "offset": 339 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 322 + }, + "end": { + "line": 15, + "column": 20, + "offset": 334 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 4, + "offset": 310 + }, + "end": { + "line": 14, + "column": 7, + "offset": 313 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 260 + }, + "end": { + "line": 17, + "column": 22, + "offset": 375 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": { + "name": "fbGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 36, + "offset": 292 + }, + "end": { + "line": 13, + "column": 49, + "offset": 305 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 4, + "name": "fbChild", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__fbParent", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbParent", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varChildInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 21, + "offset": 450 + }, + "end": { + "line": 21, + "column": 24, + "offset": 453 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 8, + "offset": 437 + }, + "end": { + "line": 21, + "column": 19, + "offset": 448 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 425 + }, + "end": { + "line": 20, + "column": 7, + "offset": 428 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 381 + }, + "end": { + "line": 23, + "column": 22, + "offset": 489 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": { + "name": "fbParent", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 35, + "offset": 412 + }, + "end": { + "line": 19, + "column": 43, + "offset": 420 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fbGreatGrandParent", + "type_name": "fbGreatGrandParent", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 100 + }, + "end": { + "line": 4, + "column": 11, + "offset": 95 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 100 + }, + "end": { + "line": 5, + "column": 22, + "offset": 118 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fbGrandParent", + "type_name": "fbGrandParent", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 4, + "offset": 236 + }, + "end": { + "line": 10, + "column": 11, + "offset": 231 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 4, + "offset": 236 + }, + "end": { + "line": 11, + "column": 22, + "offset": 254 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fbParent", + "type_name": "fbParent", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 4, + "offset": 357 + }, + "end": { + "line": 16, + "column": 11, + "offset": 352 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 4, + "offset": 357 + }, + "end": { + "line": 17, + "column": 22, + "offset": 375 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fbChild", + "type_name": "fbChild", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 4, + "offset": 471 + }, + "end": { + "line": 22, + "column": 11, + "offset": 466 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 4, + "offset": 471 + }, + "end": { + "line": 23, + "column": 22, + "offset": 489 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StructType": { + "name": "__vtable_fbGreatGrandParent", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbGreatGrandParent___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "__vtable_fbGrandParent", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbGrandParent___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "__vtable_fbParent", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbParent___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "__vtable_fbChild", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbChild___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__fbGreatGrandParent___vtable", + "referenced_type": { + "Reference": { + "referenced_type": "__VOID", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbGreatGrandParent___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbGreatGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 5, + "column": 22, + "offset": 118 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbGrandParent___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 4, + "offset": 124 + }, + "end": { + "line": 11, + "column": 22, + "offset": 254 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbParent___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbParent", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 260 + }, + "end": { + "line": 17, + "column": 22, + "offset": 375 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbChild___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbChild", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 381 + }, + "end": { + "line": 23, + "column": 22, + "offset": 489 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "dependencies": [ + { + "Variable": "__vtable_fbGreatGrandParent_instance" + }, + { + "Datatype": "__vtable_fbGreatGrandParent" + }, + { + "Datatype": "____vtable_fbGreatGrandParent___body" + }, + { + "Datatype": "fbGreatGrandParent" + }, + { + "Datatype": "__fbGreatGrandParent___vtable" + }, + { + "Datatype": "__VOID" + }, + { + "Datatype": "INT" + }, + { + "Variable": "__vtable_fbGrandParent_instance" + }, + { + "Datatype": "__vtable_fbGrandParent" + }, + { + "Datatype": "____vtable_fbGrandParent___body" + }, + { + "Datatype": "fbGrandParent" + }, + { + "Variable": "__vtable_fbParent_instance" + }, + { + "Datatype": "__vtable_fbParent" + }, + { + "Datatype": "____vtable_fbParent___body" + }, + { + "Datatype": "fbParent" + }, + { + "Variable": "__vtable_fbChild_instance" + }, + { + "Datatype": "__vtable_fbChild" + }, + { + "Datatype": "____vtable_fbChild___body" + }, + { + "Datatype": "fbChild" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + }, + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 108, + "name": "__init___vtable_fbgreatgrandparent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGreatGrandParent", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 114, + "name": "__init___vtable_fbgrandparent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGrandParent", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 120, + "name": "__init___vtable_fbparent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbParent", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 126, + "name": "__init___vtable_fbchild", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbChild", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 132, + "name": "__init_fbparent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbParent", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 150, + "name": "__init_fbgreatgrandparent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGreatGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 161, + "name": "__init_fbgrandparent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 179, + "name": "__init_fbchild", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbChild", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 79, + "name": "__user_init_fbParent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbParent", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 87, + "name": "__user_init_fbGreatGrandParent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGreatGrandParent", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 88, + "name": "__user_init_fbGrandParent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGrandParent", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 96, + "name": "__user_init___vtable_fbParent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbParent", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 97, + "name": "__user_init_fbChild", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbChild", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 105, + "name": "__user_init___vtable_fbChild", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbChild", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 106, + "name": "__user_init___vtable_fbGrandParent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGrandParent", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 107, + "name": "__user_init___vtable_fbGreatGrandParent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGreatGrandParent", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___vtable_fbgreatgrandparent", + "type_name": "__init___vtable_fbgreatgrandparent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__body" + }, + "id": 109, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 111, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 112, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 110, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 23, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 24, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbGreatGrandParent" + }, + "id": 25, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 26, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 27, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 113, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init___vtable_fbgrandparent", + "type_name": "__init___vtable_fbgrandparent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__body" + }, + "id": 115, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 117, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 118, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 116, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 28, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 29, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbGrandParent" + }, + "id": 30, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 31, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 32, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 119, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init___vtable_fbparent", + "type_name": "__init___vtable_fbparent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__body" + }, + "id": 121, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 123, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 124, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 122, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 33, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 34, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbParent" + }, + "id": 35, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 36, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 37, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 125, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init___vtable_fbchild", + "type_name": "__init___vtable_fbchild", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__body" + }, + "id": 127, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 129, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 130, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 128, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 38, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 39, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbChild" + }, + "id": 40, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 41, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 42, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 131, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_fbparent", + "type_name": "__init_fbparent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init_fbgrandparent" + }, + "id": 143, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 144, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGrandParent" + }, + "id": 147, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 145, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 146, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 148, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 149, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable" + }, + "id": 133, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGreatGrandParent" + }, + "id": 262, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGrandParent" + }, + "id": 260, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 134, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 135, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 261, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 263, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 136, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 137, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 138, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbParent_instance" + }, + "id": 139, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 140, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 141, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 142, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_fbgreatgrandparent", + "type_name": "__init_fbgreatgrandparent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable" + }, + "id": 151, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 152, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 153, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 154, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 155, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 156, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbGreatGrandParent_instance" + }, + "id": 157, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 158, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 159, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 160, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_fbgrandparent", + "type_name": "__init_fbgrandparent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init_fbgreatgrandparent" + }, + "id": 172, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 173, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGreatGrandParent" + }, + "id": 176, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 174, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 175, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 177, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 178, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable" + }, + "id": 162, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGreatGrandParent" + }, + "id": 264, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 163, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 164, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 265, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 165, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 166, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 167, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbGrandParent_instance" + }, + "id": 168, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 169, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 170, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 171, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_fbchild", + "type_name": "__init_fbchild", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init_fbparent" + }, + "id": 190, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 191, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbParent" + }, + "id": 194, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 192, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 193, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 195, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 196, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable" + }, + "id": 180, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGreatGrandParent" + }, + "id": 270, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGrandParent" + }, + "id": 268, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbParent" + }, + "id": 266, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 181, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 182, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 267, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 269, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 271, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 183, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 184, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 185, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbChild_instance" + }, + "id": 186, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 187, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 188, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 189, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_fbParent", + "type_name": "__user_init_fbParent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init_fbGrandParent" + }, + "id": 80, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 81, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGrandParent" + }, + "id": 84, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 82, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 83, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 85, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 86, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_fbGreatGrandParent", + "type_name": "__user_init_fbGreatGrandParent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_fbGrandParent", + "type_name": "__user_init_fbGrandParent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init_fbGreatGrandParent" + }, + "id": 89, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 90, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGreatGrandParent" + }, + "id": 93, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 91, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 92, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 94, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 95, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init___vtable_fbParent", + "type_name": "__user_init___vtable_fbParent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_fbChild", + "type_name": "__user_init_fbChild", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init_fbParent" + }, + "id": 98, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 99, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbParent" + }, + "id": 102, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 100, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 101, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 103, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 104, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init___vtable_fbChild", + "type_name": "__user_init___vtable_fbChild", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init___vtable_fbGrandParent", + "type_name": "__user_init___vtable_fbGrandParent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init___vtable_fbGreatGrandParent", + "type_name": "__user_init___vtable_fbGreatGrandParent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__initializers" + } + }, + "dependencies": [ + { + "Datatype": "__init___vtable_fbgreatgrandparent" + }, + { + "Datatype": "__vtable_fbGreatGrandParent" + }, + { + "Datatype": "____vtable_fbGreatGrandParent___body" + }, + { + "Datatype": "fbGreatGrandParent" + }, + { + "Datatype": "__fbGreatGrandParent___vtable" + }, + { + "Datatype": "__VOID" + }, + { + "Datatype": "INT" + }, + { + "Datatype": "__init___vtable_fbgrandparent" + }, + { + "Datatype": "__vtable_fbGrandParent" + }, + { + "Datatype": "____vtable_fbGrandParent___body" + }, + { + "Datatype": "fbGrandParent" + }, + { + "Datatype": "__init___vtable_fbparent" + }, + { + "Datatype": "__vtable_fbParent" + }, + { + "Datatype": "____vtable_fbParent___body" + }, + { + "Datatype": "fbParent" + }, + { + "Datatype": "__init___vtable_fbchild" + }, + { + "Datatype": "__vtable_fbChild" + }, + { + "Datatype": "____vtable_fbChild___body" + }, + { + "Datatype": "fbChild" + }, + { + "Datatype": "__init_fbparent" + }, + { + "Datatype": "__init_fbgreatgrandparent" + }, + { + "Datatype": "__init_fbgrandparent" + }, + { + "Datatype": "__init_fbchild" + }, + { + "Datatype": "__user_init_fbParent" + }, + { + "Datatype": "__user_init_fbGreatGrandParent" + }, + { + "Datatype": "__user_init_fbGrandParent" + }, + { + "Datatype": "__user_init___vtable_fbParent" + }, + { + "Datatype": "__user_init_fbChild" + }, + { + "Datatype": "__user_init___vtable_fbChild" + }, + { + "Datatype": "__user_init___vtable_fbGrandParent" + }, + { + "Datatype": "__user_init___vtable_fbGreatGrandParent" + }, + { + "Datatype": "__auto_pointer_to___vtable_fbGreatGrandParent" + }, + { + "Call": "ADR" + }, + { + "Datatype": "ADR" + }, + { + "Datatype": "__ADR__U" + }, + { + "Datatype": "LWORD" + }, + { + "Datatype": "__auto_pointer_to___vtable_fbGrandParent" + }, + { + "Datatype": "__auto_pointer_to___vtable_fbParent" + }, + { + "Datatype": "__auto_pointer_to___vtable_fbChild" + }, + { + "Datatype": "__auto_pointer_to_fbParent" + }, + { + "Call": "__init_fbgrandparent" + }, + { + "Datatype": "__auto_pointer_to_fbGrandParent" + }, + { + "Variable": "__vtable_fbParent_instance" + }, + { + "Datatype": "__auto_pointer_to_fbGreatGrandParent" + }, + { + "Variable": "__vtable_fbGreatGrandParent_instance" + }, + { + "Call": "__init_fbgreatgrandparent" + }, + { + "Variable": "__vtable_fbGrandParent_instance" + }, + { + "Datatype": "__auto_pointer_to_fbChild" + }, + { + "Call": "__init_fbparent" + }, + { + "Variable": "__vtable_fbChild_instance" + }, + { + "Call": "__user_init_fbGrandParent" + }, + { + "Call": "__user_init_fbGreatGrandParent" + }, + { + "Call": "__user_init_fbParent" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + }, + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 197, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init___vtable_fbgreatgrandparent" + }, + "id": 198, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 199, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbGreatGrandParent_instance" + }, + "id": 200, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 201, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 202, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init___vtable_fbgrandparent" + }, + "id": 203, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 204, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbGrandParent_instance" + }, + "id": 205, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 206, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 207, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init___vtable_fbparent" + }, + "id": 208, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 209, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbParent_instance" + }, + "id": 210, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 211, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 212, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init___vtable_fbchild" + }, + "id": 213, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 214, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbChild_instance" + }, + "id": 215, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 216, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 217, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init___vtable_fbGreatGrandParent" + }, + "id": 218, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 219, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbGreatGrandParent_instance" + }, + "id": 220, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 221, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 222, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init___vtable_fbGrandParent" + }, + "id": 223, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 224, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbGrandParent_instance" + }, + "id": 225, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 226, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 227, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init___vtable_fbParent" + }, + "id": 228, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 229, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbParent_instance" + }, + "id": 230, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 231, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 232, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init___vtable_fbChild" + }, + "id": 233, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 234, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbChild_instance" + }, + "id": 235, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 236, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 237, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + }, + "dependencies": [ + { + "Datatype": "__init___TestProject" + }, + { + "Call": "__init___vtable_fbgreatgrandparent" + }, + { + "Datatype": "__init___vtable_fbgreatgrandparent" + }, + { + "Datatype": "__auto_pointer_to___vtable_fbGreatGrandParent" + }, + { + "Datatype": "__vtable_fbGreatGrandParent" + }, + { + "Datatype": "____vtable_fbGreatGrandParent___body" + }, + { + "Datatype": "fbGreatGrandParent" + }, + { + "Datatype": "__fbGreatGrandParent___vtable" + }, + { + "Datatype": "__VOID" + }, + { + "Datatype": "INT" + }, + { + "Variable": "__vtable_fbGreatGrandParent_instance" + }, + { + "Call": "__init___vtable_fbgrandparent" + }, + { + "Datatype": "__init___vtable_fbgrandparent" + }, + { + "Datatype": "__auto_pointer_to___vtable_fbGrandParent" + }, + { + "Datatype": "__vtable_fbGrandParent" + }, + { + "Datatype": "____vtable_fbGrandParent___body" + }, + { + "Datatype": "fbGrandParent" + }, + { + "Variable": "__vtable_fbGrandParent_instance" + }, + { + "Call": "__init___vtable_fbparent" + }, + { + "Datatype": "__init___vtable_fbparent" + }, + { + "Datatype": "__auto_pointer_to___vtable_fbParent" + }, + { + "Datatype": "__vtable_fbParent" + }, + { + "Datatype": "____vtable_fbParent___body" + }, + { + "Datatype": "fbParent" + }, + { + "Variable": "__vtable_fbParent_instance" + }, + { + "Call": "__init___vtable_fbchild" + }, + { + "Datatype": "__init___vtable_fbchild" + }, + { + "Datatype": "__auto_pointer_to___vtable_fbChild" + }, + { + "Datatype": "__vtable_fbChild" + }, + { + "Datatype": "____vtable_fbChild___body" + }, + { + "Datatype": "fbChild" + }, + { + "Variable": "__vtable_fbChild_instance" + }, + { + "Call": "__user_init___vtable_fbGreatGrandParent" + }, + { + "Datatype": "__user_init___vtable_fbGreatGrandParent" + }, + { + "Call": "__user_init___vtable_fbGrandParent" + }, + { + "Datatype": "__user_init___vtable_fbGrandParent" + }, + { + "Call": "__user_init___vtable_fbParent" + }, + { + "Datatype": "__user_init___vtable_fbParent" + }, + { + "Call": "__user_init___vtable_fbChild" + }, + { + "Datatype": "__user_init___vtable_fbChild" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + } + ], + "index": { + "global_variables": { + "inner_map": { + "__vtable_fbgreatgrandparent_instance": [ + { + "name": "__vtable_fbGreatGrandParent_instance", + "qualified_name": "__vtable_fbGreatGrandParent_instance", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__vtable_fbGreatGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__vtable_fbgrandparent_instance": [ + { + "name": "__vtable_fbGrandParent_instance", + "qualified_name": "__vtable_fbGrandParent_instance", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__vtable_fbGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__vtable_fbparent_instance": [ + { + "name": "__vtable_fbParent_instance", + "qualified_name": "__vtable_fbParent_instance", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__vtable_fbParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__vtable_fbchild_instance": [ + { + "name": "__vtable_fbChild_instance", + "qualified_name": "__vtable_fbChild_instance", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__vtable_fbChild", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ] + } + }, + "global_initializers": { + "inner_map": { + "____vtable_fbgreatgrandparent__init": [ + { + "name": "____vtable_fbGreatGrandParent__init", + "qualified_name": "____vtable_fbGreatGrandParent__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "__vtable_fbGreatGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "____vtable_fbgrandparent__init": [ + { + "name": "____vtable_fbGrandParent__init", + "qualified_name": "____vtable_fbGrandParent__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "__vtable_fbGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "____vtable_fbparent__init": [ + { + "name": "____vtable_fbParent__init", + "qualified_name": "____vtable_fbParent__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "__vtable_fbParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "____vtable_fbchild__init": [ + { + "name": "____vtable_fbChild__init", + "qualified_name": "____vtable_fbChild__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "__vtable_fbChild", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__fbgreatgrandparent__init": [ + { + "name": "__fbGreatGrandParent__init", + "qualified_name": "__fbGreatGrandParent__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "fbGreatGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__fbgrandparent__init": [ + { + "name": "__fbGrandParent__init", + "qualified_name": "__fbGrandParent__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "fbGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__fbparent__init": [ + { + "name": "__fbParent__init", + "qualified_name": "__fbParent__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "fbParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__fbchild__init": [ + { + "name": "__fbChild__init", + "qualified_name": "__fbChild__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "fbChild", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ] + } + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": { + "fbgreatgrandparent": [ + { + "FunctionBlock": { + "name": "fbGreatGrandParent", + "instance_struct_name": "fbGreatGrandParent", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "super_class": null, + "interfaces": [], + "properties": {} + } + } + ], + "fbgrandparent": [ + { + "FunctionBlock": { + "name": "fbGrandParent", + "instance_struct_name": "fbGrandParent", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "super_class": "fbGreatGrandParent", + "interfaces": [], + "properties": {} + } + } + ], + "fbparent": [ + { + "FunctionBlock": { + "name": "fbParent", + "instance_struct_name": "fbParent", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "super_class": "fbGrandParent", + "interfaces": [], + "properties": {} + } + } + ], + "fbchild": [ + { + "FunctionBlock": { + "name": "fbChild", + "instance_struct_name": "fbChild", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "super_class": "fbParent", + "interfaces": [], + "properties": {} + } + } + ], + "__init___vtable_fbgreatgrandparent": [ + { + "Function": { + "name": "__init___vtable_fbgreatgrandparent", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init___vtable_fbgrandparent": [ + { + "Function": { + "name": "__init___vtable_fbgrandparent", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init___vtable_fbparent": [ + { + "Function": { + "name": "__init___vtable_fbparent", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init___vtable_fbchild": [ + { + "Function": { + "name": "__init___vtable_fbchild", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init_fbparent": [ + { + "Function": { + "name": "__init_fbparent", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init_fbgreatgrandparent": [ + { + "Function": { + "name": "__init_fbgreatgrandparent", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init_fbgrandparent": [ + { + "Function": { + "name": "__init_fbgrandparent", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init_fbchild": [ + { + "Function": { + "name": "__init_fbchild", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init_fbparent": [ + { + "Function": { + "name": "__user_init_fbParent", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init_fbgreatgrandparent": [ + { + "Function": { + "name": "__user_init_fbGreatGrandParent", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init_fbgrandparent": [ + { + "Function": { + "name": "__user_init_fbGrandParent", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init___vtable_fbparent": [ + { + "Function": { + "name": "__user_init___vtable_fbParent", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init_fbchild": [ + { + "Function": { + "name": "__user_init_fbChild", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init___vtable_fbchild": [ + { + "Function": { + "name": "__user_init___vtable_fbChild", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init___vtable_fbgrandparent": [ + { + "Function": { + "name": "__user_init___vtable_fbGrandParent", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init___vtable_fbgreatgrandparent": [ + { + "Function": { + "name": "__user_init___vtable_fbGreatGrandParent", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init___testproject": [ + { + "Function": { + "name": "__init___TestProject", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "fbgreatgrandparent": { + "call_name": "fbGreatGrandParent", + "type_name": "fbGreatGrandParent", + "associated_class": null, + "implementation_type": "FunctionBlock", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 100 + }, + "end": { + "line": 4, + "column": 11, + "offset": 95 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "fbgrandparent": { + "call_name": "fbGrandParent", + "type_name": "fbGrandParent", + "associated_class": null, + "implementation_type": "FunctionBlock", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 4, + "offset": 236 + }, + "end": { + "line": 10, + "column": 11, + "offset": 231 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "fbparent": { + "call_name": "fbParent", + "type_name": "fbParent", + "associated_class": null, + "implementation_type": "FunctionBlock", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 4, + "offset": 357 + }, + "end": { + "line": 16, + "column": 11, + "offset": 352 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "fbchild": { + "call_name": "fbChild", + "type_name": "fbChild", + "associated_class": null, + "implementation_type": "FunctionBlock", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 4, + "offset": 471 + }, + "end": { + "line": 22, + "column": 11, + "offset": 466 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "__init___vtable_fbgreatgrandparent": { + "call_name": "__init___vtable_fbgreatgrandparent", + "type_name": "__init___vtable_fbgreatgrandparent", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "__init___vtable_fbgrandparent": { + "call_name": "__init___vtable_fbgrandparent", + "type_name": "__init___vtable_fbgrandparent", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "__init___vtable_fbparent": { + "call_name": "__init___vtable_fbparent", + "type_name": "__init___vtable_fbparent", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "__init___vtable_fbchild": { + "call_name": "__init___vtable_fbchild", + "type_name": "__init___vtable_fbchild", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "__init_fbparent": { + "call_name": "__init_fbparent", + "type_name": "__init_fbparent", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + }, + "__init_fbgreatgrandparent": { + "call_name": "__init_fbgreatgrandparent", + "type_name": "__init_fbgreatgrandparent", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "__init_fbgrandparent": { + "call_name": "__init_fbgrandparent", + "type_name": "__init_fbgrandparent", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + }, + "__init_fbchild": { + "call_name": "__init_fbchild", + "type_name": "__init_fbchild", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + }, + "__user_init_fbparent": { + "call_name": "__user_init_fbParent", + "type_name": "__user_init_fbParent", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__user_init_fbgreatgrandparent": { + "call_name": "__user_init_fbGreatGrandParent", + "type_name": "__user_init_fbGreatGrandParent", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__user_init_fbgrandparent": { + "call_name": "__user_init_fbGrandParent", + "type_name": "__user_init_fbGrandParent", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__user_init___vtable_fbparent": { + "call_name": "__user_init___vtable_fbParent", + "type_name": "__user_init___vtable_fbParent", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__user_init_fbchild": { + "call_name": "__user_init_fbChild", + "type_name": "__user_init_fbChild", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__user_init___vtable_fbchild": { + "call_name": "__user_init___vtable_fbChild", + "type_name": "__user_init___vtable_fbChild", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__user_init___vtable_fbgrandparent": { + "call_name": "__user_init___vtable_fbGrandParent", + "type_name": "__user_init___vtable_fbGrandParent", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__user_init___vtable_fbgreatgrandparent": { + "call_name": "__user_init___vtable_fbGreatGrandParent", + "type_name": "__user_init___vtable_fbGreatGrandParent", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__init___testproject": { + "call_name": "__init___TestProject", + "type_name": "__init___TestProject", + "associated_class": null, + "implementation_type": "ProjectInit", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "__vtable_fbgreatgrandparent": [ + { + "name": "__vtable_fbGreatGrandParent", + "initial_value": null, + "information": { + "Struct": { + "name": "__vtable_fbGreatGrandParent", + "members": [ + { + "name": "__body", + "qualified_name": "__vtable_fbGreatGrandParent.__body", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "____vtable_fbGreatGrandParent___body", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__vtable_fbgrandparent": [ + { + "name": "__vtable_fbGrandParent", + "initial_value": null, + "information": { + "Struct": { + "name": "__vtable_fbGrandParent", + "members": [ + { + "name": "__body", + "qualified_name": "__vtable_fbGrandParent.__body", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "____vtable_fbGrandParent___body", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__vtable_fbparent": [ + { + "name": "__vtable_fbParent", + "initial_value": null, + "information": { + "Struct": { + "name": "__vtable_fbParent", + "members": [ + { + "name": "__body", + "qualified_name": "__vtable_fbParent.__body", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "____vtable_fbParent___body", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__vtable_fbchild": [ + { + "name": "__vtable_fbChild", + "initial_value": null, + "information": { + "Struct": { + "name": "__vtable_fbChild", + "members": [ + { + "name": "__body", + "qualified_name": "__vtable_fbChild.__body", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "____vtable_fbChild___body", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__fbgreatgrandparent___vtable": [ + { + "name": "__fbGreatGrandParent___vtable", + "initial_value": null, + "information": { + "Pointer": { + "name": "__fbGreatGrandParent___vtable", + "inner_type_name": "__VOID", + "auto_deref": null, + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "____vtable_fbgreatgrandparent___body": [ + { + "name": "____vtable_fbGreatGrandParent___body", + "initial_value": null, + "information": { + "Pointer": { + "name": "____vtable_fbGreatGrandParent___body", + "inner_type_name": "fbGreatGrandParent", + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "____vtable_fbgrandparent___body": [ + { + "name": "____vtable_fbGrandParent___body", + "initial_value": null, + "information": { + "Pointer": { + "name": "____vtable_fbGrandParent___body", + "inner_type_name": "fbGrandParent", + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "____vtable_fbparent___body": [ + { + "name": "____vtable_fbParent___body", + "initial_value": null, + "information": { + "Pointer": { + "name": "____vtable_fbParent___body", + "inner_type_name": "fbParent", + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "____vtable_fbchild___body": [ + { + "name": "____vtable_fbChild___body", + "initial_value": null, + "information": { + "Pointer": { + "name": "____vtable_fbChild___body", + "inner_type_name": "fbChild", + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__auto_pointer_to___vtable_fbgreatgrandparent": [ + { + "name": "__auto_pointer_to___vtable_fbGreatGrandParent", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___vtable_fbGreatGrandParent", + "inner_type_name": "__vtable_fbGreatGrandParent", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___vtable_fbgrandparent": [ + { + "name": "__auto_pointer_to___vtable_fbGrandParent", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___vtable_fbGrandParent", + "inner_type_name": "__vtable_fbGrandParent", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___vtable_fbparent": [ + { + "name": "__auto_pointer_to___vtable_fbParent", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___vtable_fbParent", + "inner_type_name": "__vtable_fbParent", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___vtable_fbchild": [ + { + "name": "__auto_pointer_to___vtable_fbChild", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___vtable_fbChild", + "inner_type_name": "__vtable_fbChild", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to_fbparent": [ + { + "name": "__auto_pointer_to_fbParent", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_fbParent", + "inner_type_name": "fbParent", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to_fbgreatgrandparent": [ + { + "name": "__auto_pointer_to_fbGreatGrandParent", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_fbGreatGrandParent", + "inner_type_name": "fbGreatGrandParent", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to_fbgrandparent": [ + { + "name": "__auto_pointer_to_fbGrandParent", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_fbGrandParent", + "inner_type_name": "fbGrandParent", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to_fbchild": [ + { + "name": "__auto_pointer_to_fbChild", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_fbChild", + "inner_type_name": "fbChild", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "fbgreatgrandparent": [ + { + "name": "fbGreatGrandParent", + "initial_value": null, + "information": { + "Struct": { + "name": "fbGreatGrandParent", + "members": [ + { + "name": "__vtable", + "qualified_name": "fbGreatGrandParent.__vtable", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fbGreatGrandParent___vtable", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + }, + { + "name": "varGreatGrandParentInt", + "qualified_name": "fbGreatGrandParent.varGreatGrandParentInt", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 55 + }, + "end": { + "line": 3, + "column": 30, + "offset": 77 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "FunctionBlock" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "fbgrandparent": [ + { + "name": "fbGrandParent", + "initial_value": null, + "information": { + "Struct": { + "name": "fbGrandParent", + "members": [ + { + "name": "__fbGreatGrandParent", + "qualified_name": "fbGrandParent.__fbGreatGrandParent", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "fbGreatGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "varargs": null + }, + { + "name": "varGrandParentInt", + "qualified_name": "fbGrandParent.varGrandParentInt", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 196 + }, + "end": { + "line": 9, + "column": 25, + "offset": 213 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "FunctionBlock" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "fbparent": [ + { + "name": "fbParent", + "initial_value": null, + "information": { + "Struct": { + "name": "fbParent", + "members": [ + { + "name": "__fbGrandParent", + "qualified_name": "fbParent.__fbGrandParent", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "fbGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "varargs": null + }, + { + "name": "varParentInt", + "qualified_name": "fbParent.varParentInt", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 322 + }, + "end": { + "line": 15, + "column": 20, + "offset": 334 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "FunctionBlock" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "fbchild": [ + { + "name": "fbChild", + "initial_value": null, + "information": { + "Struct": { + "name": "fbChild", + "members": [ + { + "name": "__fbParent", + "qualified_name": "fbChild.__fbParent", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "fbParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "varargs": null + }, + { + "name": "varChildInt", + "qualified_name": "fbChild.varChildInt", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 8, + "offset": 437 + }, + "end": { + "line": 21, + "column": 19, + "offset": 448 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "FunctionBlock" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__init___vtable_fbgreatgrandparent": [ + { + "name": "__init___vtable_fbgreatgrandparent", + "initial_value": null, + "information": { + "Struct": { + "name": "__init___vtable_fbgreatgrandparent", + "members": [ + { + "name": "self", + "qualified_name": "__init___vtable_fbgreatgrandparent.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___vtable_fbGreatGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__init___vtable_fbgrandparent": [ + { + "name": "__init___vtable_fbgrandparent", + "initial_value": null, + "information": { + "Struct": { + "name": "__init___vtable_fbgrandparent", + "members": [ + { + "name": "self", + "qualified_name": "__init___vtable_fbgrandparent.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___vtable_fbGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__init___vtable_fbparent": [ + { + "name": "__init___vtable_fbparent", + "initial_value": null, + "information": { + "Struct": { + "name": "__init___vtable_fbparent", + "members": [ + { + "name": "self", + "qualified_name": "__init___vtable_fbparent.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___vtable_fbParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__init___vtable_fbchild": [ + { + "name": "__init___vtable_fbchild", + "initial_value": null, + "information": { + "Struct": { + "name": "__init___vtable_fbchild", + "members": [ + { + "name": "self", + "qualified_name": "__init___vtable_fbchild.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___vtable_fbChild", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__init_fbparent": [ + { + "name": "__init_fbparent", + "initial_value": null, + "information": { + "Struct": { + "name": "__init_fbparent", + "members": [ + { + "name": "self", + "qualified_name": "__init_fbparent.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_fbParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__init_fbgreatgrandparent": [ + { + "name": "__init_fbgreatgrandparent", + "initial_value": null, + "information": { + "Struct": { + "name": "__init_fbgreatgrandparent", + "members": [ + { + "name": "self", + "qualified_name": "__init_fbgreatgrandparent.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_fbGreatGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__init_fbgrandparent": [ + { + "name": "__init_fbgrandparent", + "initial_value": null, + "information": { + "Struct": { + "name": "__init_fbgrandparent", + "members": [ + { + "name": "self", + "qualified_name": "__init_fbgrandparent.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_fbGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__init_fbchild": [ + { + "name": "__init_fbchild", + "initial_value": null, + "information": { + "Struct": { + "name": "__init_fbchild", + "members": [ + { + "name": "self", + "qualified_name": "__init_fbchild.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_fbChild", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__user_init_fbparent": [ + { + "name": "__user_init_fbParent", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init_fbParent", + "members": [ + { + "name": "self", + "qualified_name": "__user_init_fbParent.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_fbParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__user_init_fbgreatgrandparent": [ + { + "name": "__user_init_fbGreatGrandParent", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init_fbGreatGrandParent", + "members": [ + { + "name": "self", + "qualified_name": "__user_init_fbGreatGrandParent.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_fbGreatGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__user_init_fbgrandparent": [ + { + "name": "__user_init_fbGrandParent", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init_fbGrandParent", + "members": [ + { + "name": "self", + "qualified_name": "__user_init_fbGrandParent.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_fbGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__user_init___vtable_fbparent": [ + { + "name": "__user_init___vtable_fbParent", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init___vtable_fbParent", + "members": [ + { + "name": "self", + "qualified_name": "__user_init___vtable_fbParent.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___vtable_fbParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__user_init_fbchild": [ + { + "name": "__user_init_fbChild", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init_fbChild", + "members": [ + { + "name": "self", + "qualified_name": "__user_init_fbChild.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_fbChild", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__user_init___vtable_fbchild": [ + { + "name": "__user_init___vtable_fbChild", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init___vtable_fbChild", + "members": [ + { + "name": "self", + "qualified_name": "__user_init___vtable_fbChild.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___vtable_fbChild", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__user_init___vtable_fbgrandparent": [ + { + "name": "__user_init___vtable_fbGrandParent", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init___vtable_fbGrandParent", + "members": [ + { + "name": "self", + "qualified_name": "__user_init___vtable_fbGrandParent.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___vtable_fbGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__user_init___vtable_fbgreatgrandparent": [ + { + "name": "__user_init___vtable_fbGreatGrandParent", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init___vtable_fbGreatGrandParent", + "members": [ + { + "name": "self", + "qualified_name": "__user_init___vtable_fbGreatGrandParent.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___vtable_fbGreatGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__init___testproject": [ + { + "name": "__init___TestProject", + "initial_value": null, + "information": { + "Struct": { + "name": "__init___TestProject", + "members": [], + "source": { + "Pou": "ProjectInit" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "annotations": { + "annotation_map": { + "type_map": { + "24": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": "ADR", + "call_name": "ADR" + } + }, + "23": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": null, + "call_name": null + } + }, + "26": { + "Type": { + "type_name": "fbGreatGrandParent" + } + }, + "25": { + "Type": { + "type_name": "fbGreatGrandParent" + } + }, + "27": { + "Value": { + "resulting_type": "LWORD" + } + }, + "112": { + "Variable": { + "resulting_type": "__vtable_fbGreatGrandParent", + "qualified_name": "__init___vtable_fbgreatgrandparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "111": { + "Variable": { + "resulting_type": "__vtable_fbGreatGrandParent", + "qualified_name": "__init___vtable_fbgreatgrandparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "110": { + "Variable": { + "resulting_type": "____vtable_fbGreatGrandParent___body", + "qualified_name": "__vtable_fbGreatGrandParent.__body", + "constant": false, + "argument_type": { + "ByVal": "Input" + }, + "auto_deref": null + } + }, + "109": { + "Variable": { + "resulting_type": "____vtable_fbGreatGrandParent___body", + "qualified_name": "__vtable_fbGreatGrandParent.__body", + "constant": false, + "argument_type": { + "ByVal": "Input" + }, + "auto_deref": null + } + }, + "29": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": "ADR", + "call_name": "ADR" + } + }, + "28": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": null, + "call_name": null + } + }, + "31": { + "Type": { + "type_name": "fbGrandParent" + } + }, + "30": { + "Type": { + "type_name": "fbGrandParent" + } + }, + "32": { + "Value": { + "resulting_type": "LWORD" + } + }, + "118": { + "Variable": { + "resulting_type": "__vtable_fbGrandParent", + "qualified_name": "__init___vtable_fbgrandparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "117": { + "Variable": { + "resulting_type": "__vtable_fbGrandParent", + "qualified_name": "__init___vtable_fbgrandparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "116": { + "Variable": { + "resulting_type": "____vtable_fbGrandParent___body", + "qualified_name": "__vtable_fbGrandParent.__body", + "constant": false, + "argument_type": { + "ByVal": "Input" + }, + "auto_deref": null + } + }, + "115": { + "Variable": { + "resulting_type": "____vtable_fbGrandParent___body", + "qualified_name": "__vtable_fbGrandParent.__body", + "constant": false, + "argument_type": { + "ByVal": "Input" + }, + "auto_deref": null + } + }, + "34": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": "ADR", + "call_name": "ADR" + } + }, + "33": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": null, + "call_name": null + } + }, + "36": { + "Type": { + "type_name": "fbParent" + } + }, + "35": { + "Type": { + "type_name": "fbParent" + } + }, + "37": { + "Value": { + "resulting_type": "LWORD" + } + }, + "124": { + "Variable": { + "resulting_type": "__vtable_fbParent", + "qualified_name": "__init___vtable_fbparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "123": { + "Variable": { + "resulting_type": "__vtable_fbParent", + "qualified_name": "__init___vtable_fbparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "122": { + "Variable": { + "resulting_type": "____vtable_fbParent___body", + "qualified_name": "__vtable_fbParent.__body", + "constant": false, + "argument_type": { + "ByVal": "Input" + }, + "auto_deref": null + } + }, + "121": { + "Variable": { + "resulting_type": "____vtable_fbParent___body", + "qualified_name": "__vtable_fbParent.__body", + "constant": false, + "argument_type": { + "ByVal": "Input" + }, + "auto_deref": null + } + }, + "39": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": "ADR", + "call_name": "ADR" + } + }, + "38": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": null, + "call_name": null + } + }, + "41": { + "Type": { + "type_name": "fbChild" + } + }, + "40": { + "Type": { + "type_name": "fbChild" + } + }, + "42": { + "Value": { + "resulting_type": "LWORD" + } + }, + "130": { + "Variable": { + "resulting_type": "__vtable_fbChild", + "qualified_name": "__init___vtable_fbchild.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "129": { + "Variable": { + "resulting_type": "__vtable_fbChild", + "qualified_name": "__init___vtable_fbchild.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "128": { + "Variable": { + "resulting_type": "____vtable_fbChild___body", + "qualified_name": "__vtable_fbChild.__body", + "constant": false, + "argument_type": { + "ByVal": "Input" + }, + "auto_deref": null + } + }, + "127": { + "Variable": { + "resulting_type": "____vtable_fbChild___body", + "qualified_name": "__vtable_fbChild.__body", + "constant": false, + "argument_type": { + "ByVal": "Input" + }, + "auto_deref": null + } + }, + "144": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init_fbgrandparent", + "generic_name": null, + "call_name": null + } + }, + "143": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init_fbgrandparent", + "generic_name": null, + "call_name": null + } + }, + "146": { + "Variable": { + "resulting_type": "fbParent", + "qualified_name": "__init_fbparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "145": { + "Variable": { + "resulting_type": "fbParent", + "qualified_name": "__init_fbparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "148": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "fbParent.__fbGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "147": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "fbParent.__fbGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "149": { + "Value": { + "resulting_type": "__VOID" + } + }, + "138": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": "ADR", + "call_name": "ADR" + } + }, + "137": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": null, + "call_name": null + } + }, + "140": { + "Variable": { + "resulting_type": "__vtable_fbParent", + "qualified_name": "__vtable_fbParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "139": { + "Variable": { + "resulting_type": "__vtable_fbParent", + "qualified_name": "__vtable_fbParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "141": { + "Value": { + "resulting_type": "LWORD" + } + }, + "135": { + "Variable": { + "resulting_type": "fbParent", + "qualified_name": "__init_fbparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "134": { + "Variable": { + "resulting_type": "fbParent", + "qualified_name": "__init_fbparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "261": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "fbParent.__fbGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "260": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "fbParent.__fbGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "263": { + "Variable": { + "resulting_type": "fbGreatGrandParent", + "qualified_name": "fbGrandParent.__fbGreatGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "262": { + "Variable": { + "resulting_type": "fbGreatGrandParent", + "qualified_name": "fbGrandParent.__fbGreatGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "136": { + "Variable": { + "resulting_type": "__fbGreatGrandParent___vtable", + "qualified_name": "fbGreatGrandParent.__vtable", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "133": { + "Variable": { + "resulting_type": "__fbGreatGrandParent___vtable", + "qualified_name": "fbGreatGrandParent.__vtable", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "156": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": "ADR", + "call_name": "ADR" + } + }, + "155": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": null, + "call_name": null + } + }, + "158": { + "Variable": { + "resulting_type": "__vtable_fbGreatGrandParent", + "qualified_name": "__vtable_fbGreatGrandParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "157": { + "Variable": { + "resulting_type": "__vtable_fbGreatGrandParent", + "qualified_name": "__vtable_fbGreatGrandParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "159": { + "Value": { + "resulting_type": "LWORD" + } + }, + "153": { + "Variable": { + "resulting_type": "fbGreatGrandParent", + "qualified_name": "__init_fbgreatgrandparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "152": { + "Variable": { + "resulting_type": "fbGreatGrandParent", + "qualified_name": "__init_fbgreatgrandparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "154": { + "Variable": { + "resulting_type": "__fbGreatGrandParent___vtable", + "qualified_name": "fbGreatGrandParent.__vtable", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "151": { + "Variable": { + "resulting_type": "__fbGreatGrandParent___vtable", + "qualified_name": "fbGreatGrandParent.__vtable", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "173": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init_fbgreatgrandparent", + "generic_name": null, + "call_name": null + } + }, + "172": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init_fbgreatgrandparent", + "generic_name": null, + "call_name": null + } + }, + "175": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "__init_fbgrandparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "174": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "__init_fbgrandparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "177": { + "Variable": { + "resulting_type": "fbGreatGrandParent", + "qualified_name": "fbGrandParent.__fbGreatGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "176": { + "Variable": { + "resulting_type": "fbGreatGrandParent", + "qualified_name": "fbGrandParent.__fbGreatGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "178": { + "Value": { + "resulting_type": "__VOID" + } + }, + "167": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": "ADR", + "call_name": "ADR" + } + }, + "166": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": null, + "call_name": null + } + }, + "169": { + "Variable": { + "resulting_type": "__vtable_fbGrandParent", + "qualified_name": "__vtable_fbGrandParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "168": { + "Variable": { + "resulting_type": "__vtable_fbGrandParent", + "qualified_name": "__vtable_fbGrandParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "170": { + "Value": { + "resulting_type": "LWORD" + } + }, + "164": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "__init_fbgrandparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "163": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "__init_fbgrandparent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "265": { + "Variable": { + "resulting_type": "fbGreatGrandParent", + "qualified_name": "fbGrandParent.__fbGreatGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "264": { + "Variable": { + "resulting_type": "fbGreatGrandParent", + "qualified_name": "fbGrandParent.__fbGreatGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "165": { + "Variable": { + "resulting_type": "__fbGreatGrandParent___vtable", + "qualified_name": "fbGreatGrandParent.__vtable", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "162": { + "Variable": { + "resulting_type": "__fbGreatGrandParent___vtable", + "qualified_name": "fbGreatGrandParent.__vtable", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "191": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init_fbparent", + "generic_name": null, + "call_name": null + } + }, + "190": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init_fbparent", + "generic_name": null, + "call_name": null + } + }, + "193": { + "Variable": { + "resulting_type": "fbChild", + "qualified_name": "__init_fbchild.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "192": { + "Variable": { + "resulting_type": "fbChild", + "qualified_name": "__init_fbchild.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "195": { + "Variable": { + "resulting_type": "fbParent", + "qualified_name": "fbChild.__fbParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "194": { + "Variable": { + "resulting_type": "fbParent", + "qualified_name": "fbChild.__fbParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "196": { + "Value": { + "resulting_type": "__VOID" + } + }, + "185": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": "ADR", + "call_name": "ADR" + } + }, + "184": { + "Function": { + "return_type": "LWORD", + "qualified_name": "ADR", + "generic_name": null, + "call_name": null + } + }, + "187": { + "Variable": { + "resulting_type": "__vtable_fbChild", + "qualified_name": "__vtable_fbChild_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "186": { + "Variable": { + "resulting_type": "__vtable_fbChild", + "qualified_name": "__vtable_fbChild_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "188": { + "Value": { + "resulting_type": "LWORD" + } + }, + "182": { + "Variable": { + "resulting_type": "fbChild", + "qualified_name": "__init_fbchild.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "181": { + "Variable": { + "resulting_type": "fbChild", + "qualified_name": "__init_fbchild.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "267": { + "Variable": { + "resulting_type": "fbParent", + "qualified_name": "fbChild.__fbParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "266": { + "Variable": { + "resulting_type": "fbParent", + "qualified_name": "fbChild.__fbParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "269": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "fbParent.__fbGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "268": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "fbParent.__fbGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "271": { + "Variable": { + "resulting_type": "fbGreatGrandParent", + "qualified_name": "fbGrandParent.__fbGreatGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "270": { + "Variable": { + "resulting_type": "fbGreatGrandParent", + "qualified_name": "fbGrandParent.__fbGreatGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "183": { + "Variable": { + "resulting_type": "__fbGreatGrandParent___vtable", + "qualified_name": "fbGreatGrandParent.__vtable", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "180": { + "Variable": { + "resulting_type": "__fbGreatGrandParent___vtable", + "qualified_name": "fbGreatGrandParent.__vtable", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "81": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init_fbGrandParent", + "generic_name": null, + "call_name": null + } + }, + "80": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init_fbGrandParent", + "generic_name": null, + "call_name": null + } + }, + "83": { + "Variable": { + "resulting_type": "fbParent", + "qualified_name": "__user_init_fbParent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "82": { + "Variable": { + "resulting_type": "fbParent", + "qualified_name": "__user_init_fbParent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "85": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "fbParent.__fbGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "84": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "fbParent.__fbGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "86": { + "Value": { + "resulting_type": "__VOID" + } + }, + "90": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init_fbGreatGrandParent", + "generic_name": null, + "call_name": null + } + }, + "89": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init_fbGreatGrandParent", + "generic_name": null, + "call_name": null + } + }, + "92": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "__user_init_fbGrandParent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "91": { + "Variable": { + "resulting_type": "fbGrandParent", + "qualified_name": "__user_init_fbGrandParent.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "94": { + "Variable": { + "resulting_type": "fbGreatGrandParent", + "qualified_name": "fbGrandParent.__fbGreatGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "93": { + "Variable": { + "resulting_type": "fbGreatGrandParent", + "qualified_name": "fbGrandParent.__fbGreatGrandParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "95": { + "Value": { + "resulting_type": "__VOID" + } + }, + "99": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init_fbParent", + "generic_name": null, + "call_name": null + } + }, + "98": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init_fbParent", + "generic_name": null, + "call_name": null + } + }, + "101": { + "Variable": { + "resulting_type": "fbChild", + "qualified_name": "__user_init_fbChild.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "100": { + "Variable": { + "resulting_type": "fbChild", + "qualified_name": "__user_init_fbChild.self", + "constant": false, + "argument_type": { + "ByRef": "InOut" + }, + "auto_deref": "Default" + } + }, + "103": { + "Variable": { + "resulting_type": "fbParent", + "qualified_name": "fbChild.__fbParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "102": { + "Variable": { + "resulting_type": "fbParent", + "qualified_name": "fbChild.__fbParent", + "constant": false, + "argument_type": { + "ByVal": "Local" + }, + "auto_deref": null + } + }, + "104": { + "Value": { + "resulting_type": "__VOID" + } + }, + "199": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init___vtable_fbgreatgrandparent", + "generic_name": null, + "call_name": null + } + }, + "198": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init___vtable_fbgreatgrandparent", + "generic_name": null, + "call_name": null + } + }, + "201": { + "Variable": { + "resulting_type": "__vtable_fbGreatGrandParent", + "qualified_name": "__vtable_fbGreatGrandParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "200": { + "Variable": { + "resulting_type": "__vtable_fbGreatGrandParent", + "qualified_name": "__vtable_fbGreatGrandParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "202": { + "Value": { + "resulting_type": "__VOID" + } + }, + "204": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init___vtable_fbgrandparent", + "generic_name": null, + "call_name": null + } + }, + "203": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init___vtable_fbgrandparent", + "generic_name": null, + "call_name": null + } + }, + "206": { + "Variable": { + "resulting_type": "__vtable_fbGrandParent", + "qualified_name": "__vtable_fbGrandParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "205": { + "Variable": { + "resulting_type": "__vtable_fbGrandParent", + "qualified_name": "__vtable_fbGrandParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "207": { + "Value": { + "resulting_type": "__VOID" + } + }, + "209": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init___vtable_fbparent", + "generic_name": null, + "call_name": null + } + }, + "208": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init___vtable_fbparent", + "generic_name": null, + "call_name": null + } + }, + "211": { + "Variable": { + "resulting_type": "__vtable_fbParent", + "qualified_name": "__vtable_fbParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "210": { + "Variable": { + "resulting_type": "__vtable_fbParent", + "qualified_name": "__vtable_fbParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "212": { + "Value": { + "resulting_type": "__VOID" + } + }, + "214": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init___vtable_fbchild", + "generic_name": null, + "call_name": null + } + }, + "213": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init___vtable_fbchild", + "generic_name": null, + "call_name": null + } + }, + "216": { + "Variable": { + "resulting_type": "__vtable_fbChild", + "qualified_name": "__vtable_fbChild_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "215": { + "Variable": { + "resulting_type": "__vtable_fbChild", + "qualified_name": "__vtable_fbChild_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "217": { + "Value": { + "resulting_type": "__VOID" + } + }, + "219": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init___vtable_fbGreatGrandParent", + "generic_name": null, + "call_name": null + } + }, + "218": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init___vtable_fbGreatGrandParent", + "generic_name": null, + "call_name": null + } + }, + "221": { + "Variable": { + "resulting_type": "__vtable_fbGreatGrandParent", + "qualified_name": "__vtable_fbGreatGrandParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "220": { + "Variable": { + "resulting_type": "__vtable_fbGreatGrandParent", + "qualified_name": "__vtable_fbGreatGrandParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "222": { + "Value": { + "resulting_type": "__VOID" + } + }, + "224": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init___vtable_fbGrandParent", + "generic_name": null, + "call_name": null + } + }, + "223": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init___vtable_fbGrandParent", + "generic_name": null, + "call_name": null + } + }, + "226": { + "Variable": { + "resulting_type": "__vtable_fbGrandParent", + "qualified_name": "__vtable_fbGrandParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "225": { + "Variable": { + "resulting_type": "__vtable_fbGrandParent", + "qualified_name": "__vtable_fbGrandParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "227": { + "Value": { + "resulting_type": "__VOID" + } + }, + "229": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init___vtable_fbParent", + "generic_name": null, + "call_name": null + } + }, + "228": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init___vtable_fbParent", + "generic_name": null, + "call_name": null + } + }, + "231": { + "Variable": { + "resulting_type": "__vtable_fbParent", + "qualified_name": "__vtable_fbParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "230": { + "Variable": { + "resulting_type": "__vtable_fbParent", + "qualified_name": "__vtable_fbParent_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "232": { + "Value": { + "resulting_type": "__VOID" + } + }, + "234": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init___vtable_fbChild", + "generic_name": null, + "call_name": null + } + }, + "233": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init___vtable_fbChild", + "generic_name": null, + "call_name": null + } + }, + "236": { + "Variable": { + "resulting_type": "__vtable_fbChild", + "qualified_name": "__vtable_fbChild_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "235": { + "Variable": { + "resulting_type": "__vtable_fbChild", + "qualified_name": "__vtable_fbChild_instance", + "constant": false, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "237": { + "Value": { + "resulting_type": "__VOID" + } + } + }, + "type_hint_map": { + "26": { + "Value": { + "resulting_type": "fbGreatGrandParent" + } + }, + "27": { + "Value": { + "resulting_type": "____vtable_fbGreatGrandParent___body" + } + }, + "31": { + "Value": { + "resulting_type": "fbGrandParent" + } + }, + "32": { + "Value": { + "resulting_type": "____vtable_fbGrandParent___body" + } + }, + "36": { + "Value": { + "resulting_type": "fbParent" + } + }, + "37": { + "Value": { + "resulting_type": "____vtable_fbParent___body" + } + }, + "41": { + "Value": { + "resulting_type": "fbChild" + } + }, + "42": { + "Value": { + "resulting_type": "____vtable_fbChild___body" + } + }, + "148": { + "Argument": { + "resulting_type": "__auto_pointer_to_fbGrandParent", + "position": 0 + } + }, + "140": { + "Value": { + "resulting_type": "__vtable_fbParent" + } + }, + "141": { + "Value": { + "resulting_type": "__fbGreatGrandParent___vtable" + } + }, + "158": { + "Value": { + "resulting_type": "__vtable_fbGreatGrandParent" + } + }, + "159": { + "Value": { + "resulting_type": "__fbGreatGrandParent___vtable" + } + }, + "177": { + "Argument": { + "resulting_type": "__auto_pointer_to_fbGreatGrandParent", + "position": 0 + } + }, + "169": { + "Value": { + "resulting_type": "__vtable_fbGrandParent" + } + }, + "170": { + "Value": { + "resulting_type": "__fbGreatGrandParent___vtable" + } + }, + "195": { + "Argument": { + "resulting_type": "__auto_pointer_to_fbParent", + "position": 0 + } + }, + "187": { + "Value": { + "resulting_type": "__vtable_fbChild" + } + }, + "188": { + "Value": { + "resulting_type": "__fbGreatGrandParent___vtable" + } + }, + "85": { + "Argument": { + "resulting_type": "__auto_pointer_to_fbGrandParent", + "position": 0 + } + }, + "94": { + "Argument": { + "resulting_type": "__auto_pointer_to_fbGreatGrandParent", + "position": 0 + } + }, + "103": { + "Argument": { + "resulting_type": "__auto_pointer_to_fbParent", + "position": 0 + } + }, + "201": { + "Argument": { + "resulting_type": "__auto_pointer_to___vtable_fbGreatGrandParent", + "position": 0 + } + }, + "206": { + "Argument": { + "resulting_type": "__auto_pointer_to___vtable_fbGrandParent", + "position": 0 + } + }, + "211": { + "Argument": { + "resulting_type": "__auto_pointer_to___vtable_fbParent", + "position": 0 + } + }, + "216": { + "Argument": { + "resulting_type": "__auto_pointer_to___vtable_fbChild", + "position": 0 + } + }, + "221": { + "Argument": { + "resulting_type": "__auto_pointer_to___vtable_fbGreatGrandParent", + "position": 0 + } + }, + "226": { + "Argument": { + "resulting_type": "__auto_pointer_to___vtable_fbGrandParent", + "position": 0 + } + }, + "231": { + "Argument": { + "resulting_type": "__auto_pointer_to___vtable_fbParent", + "position": 0 + } + }, + "236": { + "Argument": { + "resulting_type": "__auto_pointer_to___vtable_fbChild", + "position": 0 + } + } + }, + "generic_nature_map": {}, + "hidden_function_calls": {}, + "new_index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": {} + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": {}, + "type_index": { + "types": { + "inner_map": {} + }, + "pou_types": { + "inner_map": {} + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + } + }, + "bool_id": 272, + "bool_annotation": { + "Value": { + "resulting_type": "BOOL" + } + } + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_8_function_blocks_with_inheritance_compilation_units.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_8_function_blocks_with_inheritance_compilation_units.snap new file mode 100644 index 0000000000..4ba87ebea5 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_8_function_blocks_with_inheritance_compilation_units.snap @@ -0,0 +1,6043 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +[ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__vtable_fbGreatGrandParent_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGreatGrandParent", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + { + "name": "__vtable_fbGrandParent_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGrandParent", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + { + "name": "__vtable_fbParent_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbParent", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + { + "name": "__vtable_fbChild_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbChild", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 1, + "name": "fbGreatGrandParent", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__vtable", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fbGreatGrandParent___vtable", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varGreatGrandParentInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 32, + "offset": 79 + }, + "end": { + "line": 3, + "column": 35, + "offset": 82 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 55 + }, + "end": { + "line": 3, + "column": 30, + "offset": 77 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 4, + "offset": 43 + }, + "end": { + "line": 2, + "column": 7, + "offset": 46 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 5, + "column": 22, + "offset": 118 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 2, + "name": "fbGrandParent", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__fbGreatGrandParent", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGreatGrandParent", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varGrandParentInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 27, + "offset": 215 + }, + "end": { + "line": 9, + "column": 30, + "offset": 218 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 196 + }, + "end": { + "line": 9, + "column": 25, + "offset": 213 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 184 + }, + "end": { + "line": 8, + "column": 7, + "offset": 187 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 4, + "offset": 124 + }, + "end": { + "line": 11, + "column": 22, + "offset": 254 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": { + "name": "fbGreatGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 41, + "offset": 161 + }, + "end": { + "line": 7, + "column": 59, + "offset": 179 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 3, + "name": "fbParent", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__fbGrandParent", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGrandParent", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varParentInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 22, + "offset": 336 + }, + "end": { + "line": 15, + "column": 25, + "offset": 339 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 322 + }, + "end": { + "line": 15, + "column": 20, + "offset": 334 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 4, + "offset": 310 + }, + "end": { + "line": 14, + "column": 7, + "offset": 313 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 260 + }, + "end": { + "line": 17, + "column": 22, + "offset": 375 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": { + "name": "fbGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 36, + "offset": 292 + }, + "end": { + "line": 13, + "column": 49, + "offset": 305 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 4, + "name": "fbChild", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__fbParent", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbParent", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varChildInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 21, + "offset": 450 + }, + "end": { + "line": 21, + "column": 24, + "offset": 453 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 8, + "offset": 437 + }, + "end": { + "line": 21, + "column": 19, + "offset": 448 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 425 + }, + "end": { + "line": 20, + "column": 7, + "offset": 428 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 381 + }, + "end": { + "line": 23, + "column": 22, + "offset": 489 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": { + "name": "fbParent", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 35, + "offset": 412 + }, + "end": { + "line": 19, + "column": 43, + "offset": 420 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fbGreatGrandParent", + "type_name": "fbGreatGrandParent", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 100 + }, + "end": { + "line": 4, + "column": 11, + "offset": 95 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 100 + }, + "end": { + "line": 5, + "column": 22, + "offset": 118 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fbGrandParent", + "type_name": "fbGrandParent", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 4, + "offset": 236 + }, + "end": { + "line": 10, + "column": 11, + "offset": 231 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 4, + "offset": 236 + }, + "end": { + "line": 11, + "column": 22, + "offset": 254 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fbParent", + "type_name": "fbParent", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 4, + "offset": 357 + }, + "end": { + "line": 16, + "column": 11, + "offset": 352 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 4, + "offset": 357 + }, + "end": { + "line": 17, + "column": 22, + "offset": 375 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fbChild", + "type_name": "fbChild", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 4, + "offset": 471 + }, + "end": { + "line": 22, + "column": 11, + "offset": 466 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 4, + "offset": 471 + }, + "end": { + "line": 23, + "column": 22, + "offset": 489 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StructType": { + "name": "__vtable_fbGreatGrandParent", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbGreatGrandParent___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "__vtable_fbGrandParent", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbGrandParent___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "__vtable_fbParent", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbParent___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "__vtable_fbChild", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbChild___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__fbGreatGrandParent___vtable", + "referenced_type": { + "Reference": { + "referenced_type": "__VOID", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbGreatGrandParent___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbGreatGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 5, + "column": 22, + "offset": 118 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbGrandParent___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 4, + "offset": 124 + }, + "end": { + "line": 11, + "column": 22, + "offset": 254 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbParent___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbParent", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 260 + }, + "end": { + "line": 17, + "column": 22, + "offset": 375 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbChild___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbChild", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 381 + }, + "end": { + "line": 23, + "column": 22, + "offset": 489 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 108, + "name": "__init___vtable_fbgreatgrandparent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGreatGrandParent", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 114, + "name": "__init___vtable_fbgrandparent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGrandParent", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 120, + "name": "__init___vtable_fbparent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbParent", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 126, + "name": "__init___vtable_fbchild", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbChild", + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 132, + "name": "__init_fbparent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbParent", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 150, + "name": "__init_fbgreatgrandparent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGreatGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 161, + "name": "__init_fbgrandparent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 179, + "name": "__init_fbchild", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbChild", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 79, + "name": "__user_init_fbParent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbParent", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 87, + "name": "__user_init_fbGreatGrandParent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGreatGrandParent", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 88, + "name": "__user_init_fbGrandParent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGrandParent", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 96, + "name": "__user_init___vtable_fbParent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbParent", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 97, + "name": "__user_init_fbChild", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbChild", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 105, + "name": "__user_init___vtable_fbChild", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbChild", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 106, + "name": "__user_init___vtable_fbGrandParent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGrandParent", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 107, + "name": "__user_init___vtable_fbGreatGrandParent", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGreatGrandParent", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___vtable_fbgreatgrandparent", + "type_name": "__init___vtable_fbgreatgrandparent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__body" + }, + "id": 109, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 111, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 112, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 110, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 23, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 24, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbGreatGrandParent" + }, + "id": 25, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 26, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 27, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 113, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init___vtable_fbgrandparent", + "type_name": "__init___vtable_fbgrandparent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__body" + }, + "id": 115, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 117, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 118, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 116, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 28, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 29, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbGrandParent" + }, + "id": 30, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 31, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 32, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 119, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init___vtable_fbparent", + "type_name": "__init___vtable_fbparent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__body" + }, + "id": 121, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 123, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 124, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 122, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 33, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 34, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbParent" + }, + "id": 35, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 36, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 37, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 125, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init___vtable_fbchild", + "type_name": "__init___vtable_fbchild", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__body" + }, + "id": 127, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 129, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 130, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 128, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 38, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 39, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbChild" + }, + "id": 40, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 41, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 42, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 131, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_fbparent", + "type_name": "__init_fbparent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init_fbgrandparent" + }, + "id": 143, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 144, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGrandParent" + }, + "id": 147, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 145, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 146, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 148, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 149, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable" + }, + "id": 133, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGreatGrandParent" + }, + "id": 262, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGrandParent" + }, + "id": 260, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 134, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 135, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 261, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 263, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 136, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 137, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 138, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbParent_instance" + }, + "id": 139, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 140, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 141, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 142, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_fbgreatgrandparent", + "type_name": "__init_fbgreatgrandparent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable" + }, + "id": 151, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 152, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 153, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 154, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 155, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 156, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbGreatGrandParent_instance" + }, + "id": 157, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 158, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 159, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 160, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_fbgrandparent", + "type_name": "__init_fbgrandparent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init_fbgreatgrandparent" + }, + "id": 172, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 173, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGreatGrandParent" + }, + "id": 176, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 174, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 175, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 177, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 178, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable" + }, + "id": 162, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGreatGrandParent" + }, + "id": 264, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 163, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 164, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 265, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 165, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 166, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 167, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbGrandParent_instance" + }, + "id": 168, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 169, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 170, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 171, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__init_fbchild", + "type_name": "__init_fbchild", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init_fbparent" + }, + "id": 190, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 191, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbParent" + }, + "id": 194, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 192, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 193, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 195, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 196, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable" + }, + "id": 180, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGreatGrandParent" + }, + "id": 270, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGrandParent" + }, + "id": 268, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbParent" + }, + "id": 266, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 181, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 182, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 267, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 269, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 271, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 183, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 184, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 185, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbChild_instance" + }, + "id": 186, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 187, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 188, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 189, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "Internal": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_fbParent", + "type_name": "__user_init_fbParent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init_fbGrandParent" + }, + "id": 80, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 81, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGrandParent" + }, + "id": 84, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 82, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 83, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 85, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 86, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_fbGreatGrandParent", + "type_name": "__user_init_fbGreatGrandParent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_fbGrandParent", + "type_name": "__user_init_fbGrandParent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init_fbGreatGrandParent" + }, + "id": 89, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 90, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbGreatGrandParent" + }, + "id": 93, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 91, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 92, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 94, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 95, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init___vtable_fbParent", + "type_name": "__user_init___vtable_fbParent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_fbChild", + "type_name": "__user_init_fbChild", + "linkage": "Internal", + "pou_type": "Init", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init_fbParent" + }, + "id": 98, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 99, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__fbParent" + }, + "id": 102, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "self" + }, + "id": 100, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 101, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 103, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 104, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init___vtable_fbChild", + "type_name": "__user_init___vtable_fbChild", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init___vtable_fbGrandParent", + "type_name": "__user_init___vtable_fbGrandParent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init___vtable_fbGreatGrandParent", + "type_name": "__user_init___vtable_fbGreatGrandParent", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__initializers" + } + }, + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 197, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init___vtable_fbgreatgrandparent" + }, + "id": 198, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 199, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbGreatGrandParent_instance" + }, + "id": 200, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 201, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 202, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init___vtable_fbgrandparent" + }, + "id": 203, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 204, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbGrandParent_instance" + }, + "id": 205, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 206, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 207, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init___vtable_fbparent" + }, + "id": 208, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 209, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbParent_instance" + }, + "id": 210, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 211, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 212, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init___vtable_fbchild" + }, + "id": 213, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 214, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbChild_instance" + }, + "id": 215, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 216, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 217, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init___vtable_fbGreatGrandParent" + }, + "id": 218, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 219, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbGreatGrandParent_instance" + }, + "id": 220, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 221, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 222, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init___vtable_fbGrandParent" + }, + "id": 223, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 224, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbGrandParent_instance" + }, + "id": 225, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 226, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 227, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init___vtable_fbParent" + }, + "id": 228, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 229, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbParent_instance" + }, + "id": 230, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 231, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 232, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init___vtable_fbChild" + }, + "id": 233, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 234, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__vtable_fbChild_instance" + }, + "id": 235, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 236, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 237, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + } +] diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_8_function_blocks_with_inheritance_indexed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_8_function_blocks_with_inheritance_indexed_content.snap new file mode 100644 index 0000000000..2268d55d21 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_8_function_blocks_with_inheritance_indexed_content.snap @@ -0,0 +1,8719 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "indexed_project": { + "project": { + "units": [ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__vtable_fbGreatGrandParent_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGreatGrandParent", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + { + "name": "__vtable_fbGrandParent_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbGrandParent", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + { + "name": "__vtable_fbParent_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbParent", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + { + "name": "__vtable_fbChild_instance", + "data_type_declaration": { + "Reference": { + "referenced_type": "__vtable_fbChild", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 1, + "name": "fbGreatGrandParent", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__vtable", + "data_type_declaration": { + "Reference": { + "referenced_type": "__fbGreatGrandParent___vtable", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varGreatGrandParentInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 32, + "offset": 79 + }, + "end": { + "line": 3, + "column": 35, + "offset": 82 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 55 + }, + "end": { + "line": 3, + "column": 30, + "offset": 77 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 4, + "offset": 43 + }, + "end": { + "line": 2, + "column": 7, + "offset": 46 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 5, + "column": 22, + "offset": 118 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 2, + "name": "fbGrandParent", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__fbGreatGrandParent", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGreatGrandParent", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varGrandParentInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 27, + "offset": 215 + }, + "end": { + "line": 9, + "column": 30, + "offset": 218 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 196 + }, + "end": { + "line": 9, + "column": 25, + "offset": 213 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 184 + }, + "end": { + "line": 8, + "column": 7, + "offset": 187 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 4, + "offset": 124 + }, + "end": { + "line": 11, + "column": 22, + "offset": 254 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": { + "name": "fbGreatGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 41, + "offset": 161 + }, + "end": { + "line": 7, + "column": 59, + "offset": 179 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 3, + "name": "fbParent", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__fbGrandParent", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbGrandParent", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varParentInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 22, + "offset": 336 + }, + "end": { + "line": 15, + "column": 25, + "offset": 339 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 322 + }, + "end": { + "line": 15, + "column": 20, + "offset": 334 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 4, + "offset": 310 + }, + "end": { + "line": 14, + "column": 7, + "offset": 313 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 260 + }, + "end": { + "line": 17, + "column": 22, + "offset": 375 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": { + "name": "fbGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 36, + "offset": 292 + }, + "end": { + "line": 13, + "column": 49, + "offset": 305 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 4, + "name": "fbChild", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "__fbParent", + "data_type_declaration": { + "Reference": { + "referenced_type": "fbParent", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varChildInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 21, + "offset": 450 + }, + "end": { + "line": 21, + "column": 24, + "offset": 453 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 8, + "offset": 437 + }, + "end": { + "line": 21, + "column": 19, + "offset": 448 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 425 + }, + "end": { + "line": 20, + "column": 7, + "offset": 428 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 381 + }, + "end": { + "line": 23, + "column": 22, + "offset": 489 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": { + "name": "fbParent", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 35, + "offset": 412 + }, + "end": { + "line": 19, + "column": 43, + "offset": 420 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fbGreatGrandParent", + "type_name": "fbGreatGrandParent", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 100 + }, + "end": { + "line": 4, + "column": 11, + "offset": 95 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 100 + }, + "end": { + "line": 5, + "column": 22, + "offset": 118 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fbGrandParent", + "type_name": "fbGrandParent", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 4, + "offset": 236 + }, + "end": { + "line": 10, + "column": 11, + "offset": 231 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 4, + "offset": 236 + }, + "end": { + "line": 11, + "column": 22, + "offset": 254 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fbParent", + "type_name": "fbParent", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 4, + "offset": 357 + }, + "end": { + "line": 16, + "column": 11, + "offset": 352 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 4, + "offset": 357 + }, + "end": { + "line": 17, + "column": 22, + "offset": 375 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fbChild", + "type_name": "fbChild", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 4, + "offset": 471 + }, + "end": { + "line": 22, + "column": 11, + "offset": 466 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 4, + "offset": 471 + }, + "end": { + "line": 23, + "column": 22, + "offset": 489 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "StructType": { + "name": "__vtable_fbGreatGrandParent", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbGreatGrandParent___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 23, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 24, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbGreatGrandParent" + }, + "id": 25, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 26, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 27, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "__vtable_fbGrandParent", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbGrandParent___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 28, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 29, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbGrandParent" + }, + "id": 30, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 31, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 32, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "__vtable_fbParent", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbParent___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 33, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 34, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbParent" + }, + "id": 35, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 36, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 37, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "StructType": { + "name": "__vtable_fbChild", + "variables": [ + { + "name": "__body", + "data_type_declaration": { + "Reference": { + "referenced_type": "____vtable_fbChild___body", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 38, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 39, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbChild" + }, + "id": 40, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 41, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 42, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "address": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ] + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "__fbGreatGrandParent___vtable", + "referenced_type": { + "Reference": { + "referenced_type": "__VOID", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": false + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbGreatGrandParent___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbGreatGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 5, + "column": 22, + "offset": 118 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbGrandParent___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 4, + "offset": 124 + }, + "end": { + "line": 11, + "column": 22, + "offset": 254 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbParent___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbParent", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 260 + }, + "end": { + "line": 17, + "column": 22, + "offset": 375 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + }, + { + "data_type": { + "PointerType": { + "name": "____vtable_fbChild___body", + "referenced_type": { + "Reference": { + "referenced_type": "fbChild", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 381 + }, + "end": { + "line": 23, + "column": 22, + "offset": 489 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "initializer": null, + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + ] + }, + "index": { + "global_variables": { + "inner_map": { + "__vtable_fbgreatgrandparent_instance": [ + { + "name": "__vtable_fbGreatGrandParent_instance", + "qualified_name": "__vtable_fbGreatGrandParent_instance", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__vtable_fbGreatGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__vtable_fbgrandparent_instance": [ + { + "name": "__vtable_fbGrandParent_instance", + "qualified_name": "__vtable_fbGrandParent_instance", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__vtable_fbGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__vtable_fbparent_instance": [ + { + "name": "__vtable_fbParent_instance", + "qualified_name": "__vtable_fbParent_instance", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__vtable_fbParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__vtable_fbchild_instance": [ + { + "name": "__vtable_fbChild_instance", + "qualified_name": "__vtable_fbChild_instance", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__vtable_fbChild", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ] + } + }, + "global_initializers": { + "inner_map": { + "____vtable_fbgreatgrandparent__init": [ + { + "name": "____vtable_fbGreatGrandParent__init", + "qualified_name": "____vtable_fbGreatGrandParent__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "__vtable_fbGreatGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "____vtable_fbgrandparent__init": [ + { + "name": "____vtable_fbGrandParent__init", + "qualified_name": "____vtable_fbGrandParent__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "__vtable_fbGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "____vtable_fbparent__init": [ + { + "name": "____vtable_fbParent__init", + "qualified_name": "____vtable_fbParent__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "__vtable_fbParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "____vtable_fbchild__init": [ + { + "name": "____vtable_fbChild__init", + "qualified_name": "____vtable_fbChild__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "__vtable_fbChild", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__fbgreatgrandparent__init": [ + { + "name": "__fbGreatGrandParent__init", + "qualified_name": "__fbGreatGrandParent__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "fbGreatGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__fbgrandparent__init": [ + { + "name": "__fbGrandParent__init", + "qualified_name": "__fbGrandParent__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "fbGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__fbparent__init": [ + { + "name": "__fbParent__init", + "qualified_name": "__fbParent__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "fbParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "__fbchild__init": [ + { + "name": "__fbChild__init", + "qualified_name": "__fbChild__init", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "fbChild", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ] + } + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": { + "fbgreatgrandparent": [ + { + "FunctionBlock": { + "name": "fbGreatGrandParent", + "instance_struct_name": "fbGreatGrandParent", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "super_class": null, + "interfaces": [], + "properties": {} + } + } + ], + "fbgrandparent": [ + { + "FunctionBlock": { + "name": "fbGrandParent", + "instance_struct_name": "fbGrandParent", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "super_class": "fbGreatGrandParent", + "interfaces": [], + "properties": {} + } + } + ], + "fbparent": [ + { + "FunctionBlock": { + "name": "fbParent", + "instance_struct_name": "fbParent", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "super_class": "fbGrandParent", + "interfaces": [], + "properties": {} + } + } + ], + "fbchild": [ + { + "FunctionBlock": { + "name": "fbChild", + "instance_struct_name": "fbChild", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "super_class": "fbParent", + "interfaces": [], + "properties": {} + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "fbgreatgrandparent": { + "call_name": "fbGreatGrandParent", + "type_name": "fbGreatGrandParent", + "associated_class": null, + "implementation_type": "FunctionBlock", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 100 + }, + "end": { + "line": 4, + "column": 11, + "offset": 95 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "fbgrandparent": { + "call_name": "fbGrandParent", + "type_name": "fbGrandParent", + "associated_class": null, + "implementation_type": "FunctionBlock", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 4, + "offset": 236 + }, + "end": { + "line": 10, + "column": 11, + "offset": 231 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "fbparent": { + "call_name": "fbParent", + "type_name": "fbParent", + "associated_class": null, + "implementation_type": "FunctionBlock", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 4, + "offset": 357 + }, + "end": { + "line": 16, + "column": 11, + "offset": 352 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "fbchild": { + "call_name": "fbChild", + "type_name": "fbChild", + "associated_class": null, + "implementation_type": "FunctionBlock", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 4, + "offset": 471 + }, + "end": { + "line": 22, + "column": 11, + "offset": 466 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "__vtable_fbgreatgrandparent": [ + { + "name": "__vtable_fbGreatGrandParent", + "initial_value": null, + "information": { + "Struct": { + "name": "__vtable_fbGreatGrandParent", + "members": [ + { + "name": "__body", + "qualified_name": "__vtable_fbGreatGrandParent.__body", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "____vtable_fbGreatGrandParent___body", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__vtable_fbgrandparent": [ + { + "name": "__vtable_fbGrandParent", + "initial_value": null, + "information": { + "Struct": { + "name": "__vtable_fbGrandParent", + "members": [ + { + "name": "__body", + "qualified_name": "__vtable_fbGrandParent.__body", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "____vtable_fbGrandParent___body", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__vtable_fbparent": [ + { + "name": "__vtable_fbParent", + "initial_value": null, + "information": { + "Struct": { + "name": "__vtable_fbParent", + "members": [ + { + "name": "__body", + "qualified_name": "__vtable_fbParent.__body", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "____vtable_fbParent___body", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__vtable_fbchild": [ + { + "name": "__vtable_fbChild", + "initial_value": null, + "information": { + "Struct": { + "name": "__vtable_fbChild", + "members": [ + { + "name": "__body", + "qualified_name": "__vtable_fbChild.__body", + "initial_value": [ + 3, + 0 + ], + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "____vtable_fbChild___body", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": "OriginalDeclaration" + } + }, + "nature": "Derived", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__fbgreatgrandparent___vtable": [ + { + "name": "__fbGreatGrandParent___vtable", + "initial_value": null, + "information": { + "Pointer": { + "name": "__fbGreatGrandParent___vtable", + "inner_type_name": "__VOID", + "auto_deref": null, + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "____vtable_fbgreatgrandparent___body": [ + { + "name": "____vtable_fbGreatGrandParent___body", + "initial_value": null, + "information": { + "Pointer": { + "name": "____vtable_fbGreatGrandParent___body", + "inner_type_name": "fbGreatGrandParent", + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "____vtable_fbgrandparent___body": [ + { + "name": "____vtable_fbGrandParent___body", + "initial_value": null, + "information": { + "Pointer": { + "name": "____vtable_fbGrandParent___body", + "inner_type_name": "fbGrandParent", + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "____vtable_fbparent___body": [ + { + "name": "____vtable_fbParent___body", + "initial_value": null, + "information": { + "Pointer": { + "name": "____vtable_fbParent___body", + "inner_type_name": "fbParent", + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "____vtable_fbchild___body": [ + { + "name": "____vtable_fbChild___body", + "initial_value": null, + "information": { + "Pointer": { + "name": "____vtable_fbChild___body", + "inner_type_name": "fbChild", + "auto_deref": null, + "type_safe": false, + "is_function": true + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "fbgreatgrandparent": [ + { + "name": "fbGreatGrandParent", + "initial_value": null, + "information": { + "Struct": { + "name": "fbGreatGrandParent", + "members": [ + { + "name": "__vtable", + "qualified_name": "fbGreatGrandParent.__vtable", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__fbGreatGrandParent___vtable", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + }, + { + "name": "varGreatGrandParentInt", + "qualified_name": "fbGreatGrandParent.varGreatGrandParentInt", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 55 + }, + "end": { + "line": 3, + "column": 30, + "offset": 77 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "FunctionBlock" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "fbgrandparent": [ + { + "name": "fbGrandParent", + "initial_value": null, + "information": { + "Struct": { + "name": "fbGrandParent", + "members": [ + { + "name": "__fbGreatGrandParent", + "qualified_name": "fbGrandParent.__fbGreatGrandParent", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "fbGreatGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "varargs": null + }, + { + "name": "varGrandParentInt", + "qualified_name": "fbGrandParent.varGrandParentInt", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 196 + }, + "end": { + "line": 9, + "column": 25, + "offset": 213 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "FunctionBlock" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "fbparent": [ + { + "name": "fbParent", + "initial_value": null, + "information": { + "Struct": { + "name": "fbParent", + "members": [ + { + "name": "__fbGrandParent", + "qualified_name": "fbParent.__fbGrandParent", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "fbGrandParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "varargs": null + }, + { + "name": "varParentInt", + "qualified_name": "fbParent.varParentInt", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 322 + }, + "end": { + "line": 15, + "column": 20, + "offset": 334 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "FunctionBlock" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "fbchild": [ + { + "name": "fbChild", + "initial_value": null, + "information": { + "Struct": { + "name": "fbChild", + "members": [ + { + "name": "__fbParent", + "qualified_name": "fbChild.__fbParent", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "fbParent", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "varargs": null + }, + { + "name": "varChildInt", + "qualified_name": "fbChild.varChildInt", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "INT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 8, + "offset": 437 + }, + "end": { + "line": 21, + "column": 19, + "offset": 448 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "FunctionBlock" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Unresolvable": { + "statement": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 23, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 24, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbGreatGrandParent" + }, + "id": 25, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 26, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 27, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "reason": { + "Address": { + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 23, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 24, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbGreatGrandParent" + }, + "id": 25, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 26, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 27, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "target_type_name": "____vtable_fbGreatGrandParent___body", + "scope": "__vtable_fbGreatGrandParent", + "lhs": "__body" + } + } + } + }, + "target_type_name": "____vtable_fbGreatGrandParent___body" + } + ], + [ + 0, + { + "expr": { + "Unresolvable": { + "statement": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 28, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 29, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbGrandParent" + }, + "id": 30, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 31, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 32, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "reason": { + "Address": { + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 28, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 29, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbGrandParent" + }, + "id": 30, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 31, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 32, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "target_type_name": "____vtable_fbGrandParent___body", + "scope": "__vtable_fbGrandParent", + "lhs": "__body" + } + } + } + }, + "target_type_name": "____vtable_fbGrandParent___body" + } + ], + [ + 0, + { + "expr": { + "Unresolvable": { + "statement": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 33, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 34, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbParent" + }, + "id": 35, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 36, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 37, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "reason": { + "Address": { + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 33, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 34, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbParent" + }, + "id": 35, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 36, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 37, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "target_type_name": "____vtable_fbParent___body", + "scope": "__vtable_fbParent", + "lhs": "__body" + } + } + } + }, + "target_type_name": "____vtable_fbParent___body" + } + ], + [ + 0, + { + "expr": { + "Unresolvable": { + "statement": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 38, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 39, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbChild" + }, + "id": 40, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 41, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 42, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "reason": { + "Address": { + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 38, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 39, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbChild" + }, + "id": 40, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 41, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 42, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "target_type_name": "____vtable_fbChild___body", + "scope": "__vtable_fbChild", + "lhs": "__body" + } + } + } + }, + "target_type_name": "____vtable_fbChild___body" + } + ] + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "unresolvables": [ + { + "id": [ + 0, + 0 + ], + "kind": { + "Address": { + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 23, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 24, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbGreatGrandParent" + }, + "id": 25, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 26, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 27, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "target_type_name": "____vtable_fbGreatGrandParent___body", + "scope": "__vtable_fbGreatGrandParent", + "lhs": "__body" + } + } + }, + { + "id": [ + 1, + 0 + ], + "kind": { + "Address": { + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 28, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 29, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbGrandParent" + }, + "id": 30, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 31, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 32, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "target_type_name": "____vtable_fbGrandParent___body", + "scope": "__vtable_fbGrandParent", + "lhs": "__body" + } + } + }, + { + "id": [ + 2, + 0 + ], + "kind": { + "Address": { + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 33, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 34, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbParent" + }, + "id": 35, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 36, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 37, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "target_type_name": "____vtable_fbParent___body", + "scope": "__vtable_fbParent", + "lhs": "__body" + } + } + }, + { + "id": [ + 3, + 0 + ], + "kind": { + "Address": { + "initializer": { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "ADR" + }, + "id": 38, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 39, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "fbChild" + }, + "id": 40, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 41, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 42, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "target_type_name": "____vtable_fbChild___body", + "scope": "__vtable_fbChild", + "lhs": "__body" + } + } + } + ] + }, + "context": { + "sources": { + "function_blocks_with_inheritance.pli": { + "source": "\n FUNCTION_BLOCK fbGreatGrandParent\n VAR\n varGreatGrandParentInt: INT;\n END_VAR\n END_FUNCTION_BLOCK\n\n FUNCTION_BLOCK fbGrandParent extends fbGreatGrandParent\n VAR\n varGrandParentInt: INT;\n END_VAR\n END_FUNCTION_BLOCK\n\n FUNCTION_BLOCK fbParent extends fbGrandParent\n VAR\n varParentInt: INT;\n END_VAR\n END_FUNCTION_BLOCK\n\n FUNCTION_BLOCK fbChild extends fbParent\n VAR\n varChildInt: INT;\n END_VAR\n END_FUNCTION_BLOCK\n ", + "path": "function_blocks_with_inheritance.pli" + } + }, + "provider": { + "current_id": 79 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_8_function_blocks_with_inheritance_parsed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_8_function_blocks_with_inheritance_parsed_content.snap new file mode 100644 index 0000000000..a179857965 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_8_function_blocks_with_inheritance_parsed_content.snap @@ -0,0 +1,882 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "parsed_project": { + "units": [ + { + "global_vars": [], + "var_config": [], + "pous": [ + { + "id": 1, + "name": "fbGreatGrandParent", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varGreatGrandParentInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 32, + "offset": 79 + }, + "end": { + "line": 3, + "column": 35, + "offset": 82 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 8, + "offset": 55 + }, + "end": { + "line": 3, + "column": 30, + "offset": 77 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 4, + "offset": 43 + }, + "end": { + "line": 2, + "column": 7, + "offset": 46 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 4, + "offset": 5 + }, + "end": { + "line": 5, + "column": 22, + "offset": 118 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 2, + "name": "fbGrandParent", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varGrandParentInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 27, + "offset": 215 + }, + "end": { + "line": 9, + "column": 30, + "offset": 218 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 8, + "offset": 196 + }, + "end": { + "line": 9, + "column": 25, + "offset": 213 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 184 + }, + "end": { + "line": 8, + "column": 7, + "offset": 187 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 4, + "offset": 124 + }, + "end": { + "line": 11, + "column": 22, + "offset": 254 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": { + "name": "fbGreatGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 41, + "offset": 161 + }, + "end": { + "line": 7, + "column": 59, + "offset": 179 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 3, + "name": "fbParent", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varParentInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 22, + "offset": 336 + }, + "end": { + "line": 15, + "column": 25, + "offset": 339 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 8, + "offset": 322 + }, + "end": { + "line": 15, + "column": 20, + "offset": 334 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 14, + "column": 4, + "offset": 310 + }, + "end": { + "line": 14, + "column": 7, + "offset": 313 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 260 + }, + "end": { + "line": 17, + "column": 22, + "offset": 375 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": { + "name": "fbGrandParent", + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 36, + "offset": 292 + }, + "end": { + "line": 13, + "column": 49, + "offset": 305 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 4, + "name": "fbChild", + "kind": "FunctionBlock", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "varChildInt", + "data_type_declaration": { + "Reference": { + "referenced_type": "INT", + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 21, + "offset": 450 + }, + "end": { + "line": 21, + "column": 24, + "offset": 453 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 21, + "column": 8, + "offset": 437 + }, + "end": { + "line": 21, + "column": 19, + "offset": 448 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 4, + "offset": 425 + }, + "end": { + "line": 20, + "column": 7, + "offset": 428 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 4, + "offset": 381 + }, + "end": { + "line": 23, + "column": 22, + "offset": 489 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "poly_mode": "None", + "generics": [], + "linkage": "Internal", + "super_class": { + "name": "fbParent", + "location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 35, + "offset": 412 + }, + "end": { + "line": 19, + "column": 43, + "offset": 420 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + }, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "fbGreatGrandParent", + "type_name": "fbGreatGrandParent", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 100 + }, + "end": { + "line": 4, + "column": 11, + "offset": 95 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 19, + "offset": 20 + }, + "end": { + "line": 1, + "column": 37, + "offset": 38 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 5, + "column": 4, + "offset": 100 + }, + "end": { + "line": 5, + "column": 22, + "offset": 118 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fbGrandParent", + "type_name": "fbGrandParent", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 4, + "offset": 236 + }, + "end": { + "line": 10, + "column": 11, + "offset": 231 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 19, + "offset": 139 + }, + "end": { + "line": 7, + "column": 32, + "offset": 152 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 4, + "offset": 236 + }, + "end": { + "line": 11, + "column": 22, + "offset": 254 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fbParent", + "type_name": "fbParent", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 4, + "offset": 357 + }, + "end": { + "line": 16, + "column": 11, + "offset": 352 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 19, + "offset": 275 + }, + "end": { + "line": 13, + "column": 27, + "offset": 283 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 17, + "column": 4, + "offset": 357 + }, + "end": { + "line": 17, + "column": 22, + "offset": 375 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "fbChild", + "type_name": "fbChild", + "linkage": "Internal", + "pou_type": "FunctionBlock", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 4, + "offset": 471 + }, + "end": { + "line": 22, + "column": 11, + "offset": 466 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 19, + "column": 19, + "offset": 396 + }, + "end": { + "line": 19, + "column": 26, + "offset": 403 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 4, + "offset": 471 + }, + "end": { + "line": 23, + "column": 22, + "offset": 489 + } + } + }, + "file": { + "File": "function_blocks_with_inheritance.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "File": "function_blocks_with_inheritance.pli" + } + } + ] + }, + "context": { + "sources": { + "function_blocks_with_inheritance.pli": { + "source": "\n FUNCTION_BLOCK fbGreatGrandParent\n VAR\n varGreatGrandParentInt: INT;\n END_VAR\n END_FUNCTION_BLOCK\n\n FUNCTION_BLOCK fbGrandParent extends fbGreatGrandParent\n VAR\n varGrandParentInt: INT;\n END_VAR\n END_FUNCTION_BLOCK\n\n FUNCTION_BLOCK fbParent extends fbGrandParent\n VAR\n varParentInt: INT;\n END_VAR\n END_FUNCTION_BLOCK\n\n FUNCTION_BLOCK fbChild extends fbParent\n VAR\n varChildInt: INT;\n END_VAR\n END_FUNCTION_BLOCK\n ", + "path": "function_blocks_with_inheritance.pli" + } + }, + "provider": { + "current_id": 5 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_9_programs_annotated_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_9_programs_annotated_content.snap new file mode 100644 index 0000000000..971251f196 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_9_programs_annotated_content.snap @@ -0,0 +1,7110 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "units": [ + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 14, + "name": "prog", + "kind": "Program", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "inOutVar", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 19, + "offset": 176 + }, + "end": { + "line": 10, + "column": 34, + "offset": 191 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 165 + }, + "end": { + "line": 10, + "column": 16, + "offset": 173 + } + } + }, + "file": { + "File": "programs.pli" + } + } + }, + { + "name": "outVar", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 209 + }, + "end": { + "line": 11, + "column": 31, + "offset": 224 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 201 + }, + "end": { + "line": 11, + "column": 14, + "offset": 207 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 4, + "offset": 153 + }, + "end": { + "line": 9, + "column": 7, + "offset": 156 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 136 + }, + "end": { + "line": 13, + "column": 15, + "offset": 253 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "prog", + "type_name": "prog", + "linkage": "Internal", + "pou_type": "Program", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 242 + }, + "end": { + "line": 12, + "column": 11, + "offset": 237 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 242 + }, + "end": { + "line": 13, + "column": 15, + "offset": 253 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 112, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 113, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "id": 114, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 115, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 116, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "id": 117, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 118, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 119, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "id": 120, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + ] + }, + "id": 121, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "programs.pli" + } + }, + "dependencies": [ + { + "Datatype": "prog" + }, + { + "Datatype": "ComplexEnumType" + }, + { + "Datatype": "DINT" + }, + { + "Variable": "ComplexEnumType.orange" + }, + { + "Variable": "ComplexEnumType.yellow" + }, + { + "Variable": "ComplexEnumType.purple" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + }, + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 100, + "name": "__init_prog", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "prog", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 99, + "name": "__user_init_prog", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "prog", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init_prog", + "type_name": "__init_prog", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_prog", + "type_name": "__user_init_prog", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__initializers" + } + }, + "dependencies": [ + { + "Datatype": "__init_prog" + }, + { + "Datatype": "prog" + }, + { + "Datatype": "ComplexEnumType" + }, + { + "Datatype": "DINT" + }, + { + "Datatype": "__user_init_prog" + }, + { + "Datatype": "__auto_pointer_to_prog" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + }, + { + "unit": { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 101, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init_prog" + }, + "id": 102, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 103, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "prog" + }, + "id": 104, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 105, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 106, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init_prog" + }, + "id": 107, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 108, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "prog" + }, + "id": 109, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 110, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 111, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + }, + "dependencies": [ + { + "Datatype": "__init___TestProject" + }, + { + "Call": "__init_prog" + }, + { + "Datatype": "__init_prog" + }, + { + "Datatype": "__auto_pointer_to_prog" + }, + { + "Datatype": "prog" + }, + { + "Datatype": "ComplexEnumType" + }, + { + "Datatype": "DINT" + }, + { + "Call": "prog" + }, + { + "Datatype": "__VOID" + }, + { + "Call": "__user_init_prog" + }, + { + "Datatype": "__user_init_prog" + } + ], + "literals": { + "utf08": [], + "utf16": [] + } + } + ], + "index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": { + "orange": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + } + ], + "yellow": [ + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + } + ], + "purple": [ + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + } + ] + } + }, + "pous": { + "inner_map": { + "prog": [ + { + "Program": { + "name": "prog", + "instance_struct_name": "prog", + "instance_variable": { + "name": "prog_instance", + "qualified_name": "prog", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "prog", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "properties": {} + } + } + ], + "__init_prog": [ + { + "Function": { + "name": "__init_prog", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__user_init_prog": [ + { + "Function": { + "name": "__user_init_prog", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "__init___testproject": [ + { + "Function": { + "name": "__init___TestProject", + "return_type": "VOID", + "generics": [], + "linkage": "Internal", + "is_variadic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "is_generated": false, + "is_const": false + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "prog": { + "call_name": "prog", + "type_name": "prog", + "associated_class": null, + "implementation_type": "Program", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 242 + }, + "end": { + "line": 12, + "column": 11, + "offset": 237 + } + } + }, + "file": { + "File": "programs.pli" + } + } + }, + "__init_prog": { + "call_name": "__init_prog", + "type_name": "__init_prog", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + } + }, + "__user_init_prog": { + "call_name": "__user_init_prog", + "type_name": "__user_init_prog", + "associated_class": null, + "implementation_type": "Init", + "generic": false, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + }, + "__init___testproject": { + "call_name": "__init___TestProject", + "type_name": "__init___TestProject", + "associated_class": null, + "implementation_type": "ProjectInit", + "generic": false, + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "complexenumtype": [ + { + "name": "ComplexEnumType", + "initial_value": [ + 0, + 0 + ], + "information": { + "Enum": { + "name": "ComplexEnumType", + "referenced_type": "DINT", + "variants": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + }, + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + }, + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + } + ] + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + ], + "__auto_pointer_to_prog": [ + { + "name": "__auto_pointer_to_prog", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to_prog", + "inner_type_name": "prog", + "auto_deref": "Default", + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "prog": [ + { + "name": "prog", + "initial_value": null, + "information": { + "Struct": { + "name": "prog", + "members": [ + { + "name": "inOutVar", + "qualified_name": "prog.inOutVar", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 165 + }, + "end": { + "line": 10, + "column": 16, + "offset": 173 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + }, + { + "name": "outVar", + "qualified_name": "prog.outVar", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 201 + }, + "end": { + "line": 11, + "column": 14, + "offset": 207 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Program" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + ], + "__init_prog": [ + { + "name": "__init_prog", + "initial_value": null, + "information": { + "Struct": { + "name": "__init_prog", + "members": [ + { + "name": "self", + "qualified_name": "__init_prog.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_prog", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + } + } + ], + "__user_init_prog": [ + { + "name": "__user_init_prog", + "initial_value": null, + "information": { + "Struct": { + "name": "__user_init_prog", + "members": [ + { + "name": "self", + "qualified_name": "__user_init_prog.self", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to_prog", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Init" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "__init___testproject": [ + { + "name": "__init___TestProject", + "initial_value": null, + "information": { + "Struct": { + "name": "__init___TestProject", + "members": [], + "source": { + "Pou": "ProjectInit" + } + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "annotations": { + "annotation_map": { + "type_map": { + "3": { + "Value": { + "resulting_type": "DINT" + } + }, + "113": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.orange", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "112": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.orange", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "7": { + "Value": { + "resulting_type": "DINT" + } + }, + "116": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.yellow", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "115": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.yellow", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "11": { + "Value": { + "resulting_type": "DINT" + } + }, + "119": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.purple", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "118": { + "Variable": { + "resulting_type": "ComplexEnumType", + "qualified_name": "ComplexEnumType.purple", + "constant": true, + "argument_type": { + "ByVal": "Global" + }, + "auto_deref": null + } + }, + "103": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init_prog", + "generic_name": null, + "call_name": null + } + }, + "102": { + "Function": { + "return_type": "VOID", + "qualified_name": "__init_prog", + "generic_name": null, + "call_name": null + } + }, + "105": { + "Program": { + "qualified_name": "prog" + } + }, + "104": { + "Program": { + "qualified_name": "prog" + } + }, + "106": { + "Value": { + "resulting_type": "__VOID" + } + }, + "108": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init_prog", + "generic_name": null, + "call_name": null + } + }, + "107": { + "Function": { + "return_type": "VOID", + "qualified_name": "__user_init_prog", + "generic_name": null, + "call_name": null + } + }, + "110": { + "Program": { + "qualified_name": "prog" + } + }, + "109": { + "Program": { + "qualified_name": "prog" + } + }, + "111": { + "Value": { + "resulting_type": "__VOID" + } + } + }, + "type_hint_map": { + "3": { + "Value": { + "resulting_type": "ComplexEnumType" + } + }, + "7": { + "Value": { + "resulting_type": "ComplexEnumType" + } + }, + "11": { + "Value": { + "resulting_type": "ComplexEnumType" + } + }, + "105": { + "Argument": { + "resulting_type": "__auto_pointer_to_prog", + "position": 0 + } + }, + "110": { + "Argument": { + "resulting_type": "__auto_pointer_to_prog", + "position": 0 + } + } + }, + "generic_nature_map": {}, + "hidden_function_calls": {}, + "new_index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": {} + }, + "pous": { + "inner_map": {} + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": {}, + "type_index": { + "types": { + "inner_map": {} + }, + "pou_types": { + "inner_map": {} + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + null, + null, + null, + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + } + }, + "bool_id": 144, + "bool_annotation": { + "Value": { + "resulting_type": "BOOL" + } + } + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_9_programs_compilation_units.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_9_programs_compilation_units.snap new file mode 100644 index 0000000000..1737d84a3d --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_9_programs_compilation_units.snap @@ -0,0 +1,1216 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +[ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 14, + "name": "prog", + "kind": "Program", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "inOutVar", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 19, + "offset": 176 + }, + "end": { + "line": 10, + "column": 34, + "offset": 191 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 165 + }, + "end": { + "line": 10, + "column": 16, + "offset": 173 + } + } + }, + "file": { + "File": "programs.pli" + } + } + }, + { + "name": "outVar", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 209 + }, + "end": { + "line": 11, + "column": 31, + "offset": 224 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 201 + }, + "end": { + "line": 11, + "column": 14, + "offset": 207 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 4, + "offset": 153 + }, + "end": { + "line": 9, + "column": 7, + "offset": 156 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 136 + }, + "end": { + "line": 13, + "column": 15, + "offset": 253 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "prog", + "type_name": "prog", + "linkage": "Internal", + "pou_type": "Program", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 242 + }, + "end": { + "line": 12, + "column": 11, + "offset": 237 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 242 + }, + "end": { + "line": 13, + "column": 15, + "offset": 253 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 112, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 113, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "id": 114, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 115, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 116, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "id": 117, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 118, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 119, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "id": 120, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + ] + }, + "id": 121, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "programs.pli" + } + }, + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 100, + "name": "__init_prog", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "prog", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + }, + { + "id": 99, + "name": "__user_init_prog", + "kind": "Init", + "variable_blocks": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [ + { + "name": "self", + "data_type_declaration": { + "Reference": { + "referenced_type": "prog", + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + } + } + ], + "kind": "InOut", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "return_type": null, + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init_prog", + "type_name": "__init_prog", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "Internal": "programs.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + }, + { + "name": "__user_init_prog", + "type_name": "__user_init_prog", + "linkage": "Internal", + "pou_type": "Init", + "statements": [], + "location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "name_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "end_location": { + "span": "None", + "file": { + "File": "__initializers" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__initializers" + } + }, + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 101, + "name": "__init___TestProject", + "kind": "ProjectInit", + "variable_blocks": [], + "return_type": null, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "__init___TestProject", + "type_name": "__init___TestProject", + "linkage": "Internal", + "pou_type": "ProjectInit", + "statements": [ + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__init_prog" + }, + "id": 102, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 103, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "prog" + }, + "id": 104, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 105, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 106, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + { + "stmt": { + "CallStatement": { + "operator": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "__user_init_prog" + }, + "id": 107, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 108, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + }, + "parameters": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "prog" + }, + "id": 109, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 110, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + } + }, + "id": 111, + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "metadata": null + } + ], + "location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "name_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "end_location": { + "span": "None", + "file": { + "Internal": "" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [], + "file": { + "Internal": "__init___TestProject" + } + } +] diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_9_programs_indexed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_9_programs_indexed_content.snap new file mode 100644 index 0000000000..517e539b66 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_9_programs_indexed_content.snap @@ -0,0 +1,5970 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "indexed_project": { + "project": { + "units": [ + { + "global_vars": [ + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + }, + { + "access": "Internal", + "constant": false, + "retain": false, + "variables": [], + "kind": "Global", + "linkage": "Internal", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "var_config": [], + "pous": [ + { + "id": 14, + "name": "prog", + "kind": "Program", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "inOutVar", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 19, + "offset": 176 + }, + "end": { + "line": 10, + "column": 34, + "offset": 191 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 165 + }, + "end": { + "line": 10, + "column": 16, + "offset": 173 + } + } + }, + "file": { + "File": "programs.pli" + } + } + }, + { + "name": "outVar", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 209 + }, + "end": { + "line": 11, + "column": 31, + "offset": 224 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 201 + }, + "end": { + "line": 11, + "column": 14, + "offset": 207 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 4, + "offset": 153 + }, + "end": { + "line": 9, + "column": 7, + "offset": 156 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 136 + }, + "end": { + "line": 13, + "column": 15, + "offset": 253 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "prog", + "type_name": "prog", + "linkage": "Internal", + "pou_type": "Program", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 242 + }, + "end": { + "line": 12, + "column": 11, + "offset": 237 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 242 + }, + "end": { + "line": 13, + "column": 15, + "offset": 253 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 71, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 72, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "id": 73, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 74, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 75, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "id": 76, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 77, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 78, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "id": 79, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + ] + }, + "id": 80, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "programs.pli" + } + } + ] + }, + "index": { + "global_variables": { + "inner_map": {} + }, + "global_initializers": { + "inner_map": {} + }, + "enum_global_variables": { + "inner_map": { + "orange": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + } + ], + "yellow": [ + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + } + ], + "purple": [ + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + } + ] + } + }, + "pous": { + "inner_map": { + "prog": [ + { + "Program": { + "name": "prog", + "instance_struct_name": "prog", + "instance_variable": { + "name": "prog_instance", + "qualified_name": "prog", + "initial_value": null, + "argument_type": { + "ByVal": "Global" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "prog", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + }, + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "properties": {} + } + } + ], + "adr": [ + { + "Function": { + "name": "ADR", + "return_type": "LWORD", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "move": [ + { + "Function": { + "name": "MOVE", + "return_type": "__MOVE__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "add": [ + { + "Function": { + "name": "ADD", + "return_type": "__ADD__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ref": [ + { + "Function": { + "name": "REF", + "return_type": "__REF_return", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": true + } + } + ], + "gt": [ + { + "Function": { + "name": "GT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "le": [ + { + "Function": { + "name": "LE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lower_bound": [ + { + "Function": { + "name": "LOWER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ne": [ + { + "Function": { + "name": "NE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sub": [ + { + "Function": { + "name": "SUB", + "return_type": "__SUB__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mul": [ + { + "Function": { + "name": "MUL", + "return_type": "__MUL__T", + "generics": [ + { + "name": "T", + "nature": "Num" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "mux": [ + { + "Function": { + "name": "MUX", + "return_type": "__MUX__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "upper_bound": [ + { + "Function": { + "name": "UPPER_BOUND", + "return_type": "DINT", + "generics": [ + { + "name": "U", + "nature": "__VLA" + }, + { + "name": "T", + "nature": "Int" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "lt": [ + { + "Function": { + "name": "LT", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "ge": [ + { + "Function": { + "name": "GE", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sel": [ + { + "Function": { + "name": "SEL", + "return_type": "__SEL__U", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "eq": [ + { + "Function": { + "name": "EQ", + "return_type": "BOOL", + "generics": [ + { + "name": "T", + "nature": "Elementary" + } + ], + "linkage": "BuiltIn", + "is_variadic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "sizeof": [ + { + "Function": { + "name": "SIZEOF", + "return_type": "ULINT", + "generics": [ + { + "name": "U", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ], + "div": [ + { + "Function": { + "name": "DIV", + "return_type": "__DIV__T1", + "generics": [ + { + "name": "T1", + "nature": "Any" + }, + { + "name": "T2", + "nature": "Any" + } + ], + "linkage": "BuiltIn", + "is_variadic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "is_generated": false, + "is_const": false + } + } + ] + } + }, + "interfaces": { + "inner_map": {} + }, + "properties": { + "inner_map": {} + }, + "implementations": { + "prog": { + "call_name": "prog", + "type_name": "prog", + "associated_class": null, + "implementation_type": "Program", + "generic": false, + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 242 + }, + "end": { + "line": 12, + "column": 11, + "offset": 237 + } + } + }, + "file": { + "File": "programs.pli" + } + } + }, + "adr": { + "call_name": "ADR", + "type_name": "ADR", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 6, + "column": 16, + "offset": 167 + }, + "end": { + "line": 5, + "column": 23, + "offset": 150 + } + } + }, + "file": "Undefined" + } + }, + "move": { + "call_name": "MOVE", + "type_name": "MOVE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 313 + }, + "end": { + "line": 10, + "column": 23, + "offset": 296 + } + } + }, + "file": "Undefined" + } + }, + "add": { + "call_name": "ADD", + "type_name": "ADD", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 15, + "column": 20, + "offset": 477 + }, + "end": { + "line": 14, + "column": 27, + "offset": 456 + } + } + }, + "file": "Undefined" + } + }, + "ref": { + "call_name": "REF", + "type_name": "REF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 22, + "column": 16, + "offset": 677 + }, + "end": { + "line": 21, + "column": 23, + "offset": 660 + } + } + }, + "file": "Undefined" + } + }, + "gt": { + "call_name": "GT", + "type_name": "GT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 27, + "column": 16, + "offset": 850 + }, + "end": { + "line": 26, + "column": 23, + "offset": 833 + } + } + }, + "file": "Undefined" + } + }, + "le": { + "call_name": "LE", + "type_name": "LE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 32, + "column": 16, + "offset": 1023 + }, + "end": { + "line": 31, + "column": 23, + "offset": 1006 + } + } + }, + "file": "Undefined" + } + }, + "lower_bound": { + "call_name": "LOWER_BOUND", + "type_name": "LOWER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 16, + "offset": 1282 + }, + "end": { + "line": 39, + "column": 23, + "offset": 1265 + } + } + }, + "file": "Undefined" + } + }, + "ne": { + "call_name": "NE", + "type_name": "NE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 45, + "column": 16, + "offset": 1457 + }, + "end": { + "line": 44, + "column": 23, + "offset": 1440 + } + } + }, + "file": "Undefined" + } + }, + "sub": { + "call_name": "SUB", + "type_name": "SUB", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 51, + "column": 16, + "offset": 1649 + }, + "end": { + "line": 50, + "column": 23, + "offset": 1632 + } + } + }, + "file": "Undefined" + } + }, + "mul": { + "call_name": "MUL", + "type_name": "MUL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 56, + "column": 16, + "offset": 1814 + }, + "end": { + "line": 55, + "column": 23, + "offset": 1797 + } + } + }, + "file": "Undefined" + } + }, + "mux": { + "call_name": "MUX", + "type_name": "MUX", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 62, + "column": 16, + "offset": 2006 + }, + "end": { + "line": 61, + "column": 23, + "offset": 1989 + } + } + }, + "file": "Undefined" + } + }, + "upper_bound": { + "call_name": "UPPER_BOUND", + "type_name": "UPPER_BOUND", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 16, + "offset": 2265 + }, + "end": { + "line": 69, + "column": 23, + "offset": 2248 + } + } + }, + "file": "Undefined" + } + }, + "lt": { + "call_name": "LT", + "type_name": "LT", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 74, + "column": 16, + "offset": 2421 + }, + "end": { + "line": 73, + "column": 23, + "offset": 2404 + } + } + }, + "file": "Undefined" + } + }, + "ge": { + "call_name": "GE", + "type_name": "GE", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 79, + "column": 16, + "offset": 2594 + }, + "end": { + "line": 78, + "column": 23, + "offset": 2577 + } + } + }, + "file": "Undefined" + } + }, + "sel": { + "call_name": "SEL", + "type_name": "SEL", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 86, + "column": 16, + "offset": 2805 + }, + "end": { + "line": 85, + "column": 23, + "offset": 2788 + } + } + }, + "file": "Undefined" + } + }, + "eq": { + "call_name": "EQ", + "type_name": "EQ", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 91, + "column": 16, + "offset": 2978 + }, + "end": { + "line": 90, + "column": 23, + "offset": 2961 + } + } + }, + "file": "Undefined" + } + }, + "sizeof": { + "call_name": "SIZEOF", + "type_name": "SIZEOF", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 16, + "offset": 3134 + }, + "end": { + "line": 95, + "column": 23, + "offset": 3117 + } + } + }, + "file": "Undefined" + } + }, + "div": { + "call_name": "DIV", + "type_name": "DIV", + "associated_class": null, + "implementation_type": "Function", + "generic": true, + "location": { + "span": { + "Range": { + "start": { + "line": 101, + "column": 16, + "offset": 3309 + }, + "end": { + "line": 100, + "column": 23, + "offset": 3292 + } + } + }, + "file": "Undefined" + } + } + }, + "type_index": { + "types": { + "inner_map": { + "complexenumtype": [ + { + "name": "ComplexEnumType", + "initial_value": [ + 0, + 0 + ], + "information": { + "Enum": { + "name": "ComplexEnumType", + "referenced_type": "DINT", + "variants": [ + { + "name": "orange", + "qualified_name": "ComplexEnumType.orange", + "initial_value": [ + 0, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + }, + { + "name": "yellow", + "qualified_name": "ComplexEnumType.yellow", + "initial_value": [ + 1, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + }, + { + "name": "purple", + "qualified_name": "ComplexEnumType.purple", + "initial_value": [ + 2, + 0 + ], + "argument_type": { + "ByVal": "Global" + }, + "is_constant": true, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + } + ] + } + }, + "nature": "Int", + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + ], + "__void": [ + { + "name": "__VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__vla": [ + { + "name": "__VLA", + "initial_value": null, + "information": { + "Struct": { + "name": "VARIABLE LENGTH ARRAY", + "members": [], + "source": { + "Internal": "__VLA" + } + } + }, + "nature": "__VLA", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__u1": [ + { + "name": "__U1", + "initial_value": null, + "information": { + "Integer": { + "name": "__U1", + "signed": false, + "size": 1, + "semantic_size": null + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "bool": [ + { + "name": "BOOL", + "initial_value": null, + "information": { + "Integer": { + "name": "BOOL", + "signed": false, + "size": 8, + "semantic_size": 1 + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "byte": [ + { + "name": "BYTE", + "initial_value": null, + "information": { + "Integer": { + "name": "BYTE", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "sint": [ + { + "name": "SINT", + "initial_value": null, + "information": { + "Integer": { + "name": "SINT", + "signed": true, + "size": 8, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "usint": [ + { + "name": "USINT", + "initial_value": null, + "information": { + "Integer": { + "name": "USINT", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "word": [ + { + "name": "WORD", + "initial_value": null, + "information": { + "Integer": { + "name": "WORD", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "int": [ + { + "name": "INT", + "initial_value": null, + "information": { + "Integer": { + "name": "INT", + "signed": true, + "size": 16, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "uint": [ + { + "name": "UINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UINT", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dword": [ + { + "name": "DWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "DWORD", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dint": [ + { + "name": "DINT", + "initial_value": null, + "information": { + "Integer": { + "name": "DINT", + "signed": true, + "size": 32, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "udint": [ + { + "name": "UDINT", + "initial_value": null, + "information": { + "Integer": { + "name": "UDINT", + "signed": false, + "size": 32, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lword": [ + { + "name": "LWORD", + "initial_value": null, + "information": { + "Integer": { + "name": "LWORD", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Bit", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lint": [ + { + "name": "LINT", + "initial_value": null, + "information": { + "Integer": { + "name": "LINT", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Signed", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date": [ + { + "name": "DATE", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time": [ + { + "name": "TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "date_and_time": [ + { + "name": "DATE_AND_TIME", + "initial_value": null, + "information": { + "Integer": { + "name": "DATE_AND_TIME", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "time_of_day": [ + { + "name": "TIME_OF_DAY", + "initial_value": null, + "information": { + "Integer": { + "name": "TIME_OF_DAY", + "signed": true, + "size": 64, + "semantic_size": null + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ulint": [ + { + "name": "ULINT", + "initial_value": null, + "information": { + "Integer": { + "name": "ULINT", + "signed": false, + "size": 64, + "semantic_size": null + } + }, + "nature": "Unsigned", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "real": [ + { + "name": "REAL", + "initial_value": null, + "information": { + "Float": { + "name": "REAL", + "size": 32 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lreal": [ + { + "name": "LREAL", + "initial_value": null, + "information": { + "Float": { + "name": "LREAL", + "size": 64 + } + }, + "nature": "Real", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "string": [ + { + "name": "STRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf8" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wstring": [ + { + "name": "WSTRING", + "initial_value": null, + "information": { + "String": { + "size": { + "LiteralInteger": 81 + }, + "encoding": "Utf16" + } + }, + "nature": "String", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "dt": [ + { + "name": "DT", + "initial_value": null, + "information": { + "Alias": { + "name": "DT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldt": [ + { + "name": "LDT", + "initial_value": null, + "information": { + "Alias": { + "name": "LDT", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate_and_time": [ + { + "name": "LDATE_AND_TIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE_AND_TIME", + "referenced_type": "DATE_AND_TIME" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "d": [ + { + "name": "D", + "initial_value": null, + "information": { + "Alias": { + "name": "D", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ldate": [ + { + "name": "LDATE", + "initial_value": null, + "information": { + "Alias": { + "name": "LDATE", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ld": [ + { + "name": "LD", + "initial_value": null, + "information": { + "Alias": { + "name": "LD", + "referenced_type": "DATE" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "tod": [ + { + "name": "TOD", + "initial_value": null, + "information": { + "Alias": { + "name": "TOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime_of_day": [ + { + "name": "LTIME_OF_DAY", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME_OF_DAY", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltod": [ + { + "name": "LTOD", + "initial_value": null, + "information": { + "Alias": { + "name": "LTOD", + "referenced_type": "TIME_OF_DAY" + } + }, + "nature": "Date", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "t": [ + { + "name": "T", + "initial_value": null, + "information": { + "Alias": { + "name": "T", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "ltime": [ + { + "name": "LTIME", + "initial_value": null, + "information": { + "Alias": { + "name": "LTIME", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Alias": { + "name": "LT", + "referenced_type": "TIME" + } + }, + "nature": "Duration", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "char": [ + { + "name": "CHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "CHAR", + "signed": false, + "size": 8, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "wchar": [ + { + "name": "WCHAR", + "initial_value": null, + "information": { + "Integer": { + "name": "WCHAR", + "signed": false, + "size": 16, + "semantic_size": null + } + }, + "nature": "Char", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__adr__u": [ + { + "name": "__ADR__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADR__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 16, + "offset": 44 + }, + "end": { + "line": 6, + "column": 28, + "offset": 179 + } + } + }, + "file": "Undefined" + } + } + ], + "__move__u": [ + { + "name": "__MOVE__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MOVE__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 13, + "offset": 193 + }, + "end": { + "line": 11, + "column": 28, + "offset": 325 + } + } + }, + "file": "Undefined" + } + } + ], + "__add__t": [ + { + "name": "__ADD__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__ADD__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 29, + "offset": 326 + }, + "end": { + "line": 15, + "column": 32, + "offset": 489 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref__u": [ + { + "name": "__REF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__REF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 16, + "offset": 551 + }, + "end": { + "line": 22, + "column": 28, + "offset": 689 + } + } + }, + "file": "Undefined" + } + } + ], + "__ref_return": [ + { + "name": "__REF_return", + "initial_value": null, + "information": { + "Pointer": { + "name": "__REF_return", + "inner_type_name": "__REF__U", + "auto_deref": null, + "type_safe": true, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 39, + "offset": 574 + }, + "end": { + "line": 18, + "column": 47, + "offset": 582 + } + } + }, + "file": "Undefined" + } + } + ], + "__gt__t": [ + { + "name": "__GT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 17, + "offset": 707 + }, + "end": { + "line": 27, + "column": 28, + "offset": 862 + } + } + }, + "file": "Undefined" + } + } + ], + "__le__t": [ + { + "name": "__LE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 17, + "offset": 880 + }, + "end": { + "line": 32, + "column": 28, + "offset": 1035 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__u": [ + { + "name": "__LOWER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__lower_bound__t": [ + { + "name": "__LOWER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LOWER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 17, + "offset": 1053 + }, + "end": { + "line": 40, + "column": 28, + "offset": 1294 + } + } + }, + "file": "Undefined" + } + } + ], + "__ne__t": [ + { + "name": "__NE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__NE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 29, + "offset": 1295 + }, + "end": { + "line": 45, + "column": 28, + "offset": 1469 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t1": [ + { + "name": "__SUB__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__sub__t2": [ + { + "name": "__SUB__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__SUB__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 17, + "offset": 1487 + }, + "end": { + "line": 51, + "column": 28, + "offset": 1661 + } + } + }, + "file": "Undefined" + } + } + ], + "__mul__t": [ + { + "name": "__MUL__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUL__T", + "generic_symbol": "T", + "nature": "Num" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 17, + "offset": 1679 + }, + "end": { + "line": 56, + "column": 28, + "offset": 1826 + } + } + }, + "file": "Undefined" + } + } + ], + "__mux__u": [ + { + "name": "__MUX__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__MUX__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 17, + "offset": 1844 + }, + "end": { + "line": 62, + "column": 28, + "offset": 2018 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__u": [ + { + "name": "__UPPER_BOUND__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__U", + "generic_symbol": "U", + "nature": "__VLA" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__upper_bound__t": [ + { + "name": "__UPPER_BOUND__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__UPPER_BOUND__T", + "generic_symbol": "T", + "nature": "Int" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 17, + "offset": 2036 + }, + "end": { + "line": 70, + "column": 28, + "offset": 2277 + } + } + }, + "file": "Undefined" + } + } + ], + "__lt__t": [ + { + "name": "__LT__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__LT__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 29, + "offset": 2278 + }, + "end": { + "line": 74, + "column": 28, + "offset": 2433 + } + } + }, + "file": "Undefined" + } + } + ], + "__ge__t": [ + { + "name": "__GE__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__GE__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 17, + "offset": 2451 + }, + "end": { + "line": 79, + "column": 28, + "offset": 2606 + } + } + }, + "file": "Undefined" + } + } + ], + "__sel__u": [ + { + "name": "__SEL__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SEL__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 17, + "offset": 2624 + }, + "end": { + "line": 86, + "column": 28, + "offset": 2817 + } + } + }, + "file": "Undefined" + } + } + ], + "__eq__t": [ + { + "name": "__EQ__T", + "initial_value": null, + "information": { + "Generic": { + "name": "__EQ__T", + "generic_symbol": "T", + "nature": "Elementary" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 17, + "offset": 2835 + }, + "end": { + "line": 91, + "column": 28, + "offset": 2990 + } + } + }, + "file": "Undefined" + } + } + ], + "__sizeof__u": [ + { + "name": "__SIZEOF__U", + "initial_value": null, + "information": { + "Generic": { + "name": "__SIZEOF__U", + "generic_symbol": "U", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 17, + "offset": 3008 + }, + "end": { + "line": 96, + "column": 28, + "offset": 3146 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t1": [ + { + "name": "__DIV__T1", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T1", + "generic_symbol": "T1", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__div__t2": [ + { + "name": "__DIV__T2", + "initial_value": null, + "information": { + "Generic": { + "name": "__DIV__T2", + "generic_symbol": "T2", + "nature": "Any" + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 29, + "offset": 3147 + }, + "end": { + "line": 101, + "column": 28, + "offset": 3321 + } + } + }, + "file": "Undefined" + } + } + ], + "__auto_pointer_to___lower_bound__u": [ + { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___LOWER_BOUND__U", + "inner_type_name": "__LOWER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ], + "__auto_pointer_to___upper_bound__u": [ + { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "initial_value": null, + "information": { + "Pointer": { + "name": "__auto_pointer_to___UPPER_BOUND__U", + "inner_type_name": "__UPPER_BOUND__U", + "auto_deref": "Default", + "type_safe": false, + "is_function": false + } + }, + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + ] + } + }, + "pou_types": { + "inner_map": { + "prog": [ + { + "name": "prog", + "initial_value": null, + "information": { + "Struct": { + "name": "prog", + "members": [ + { + "name": "inOutVar", + "qualified_name": "prog.inOutVar", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 165 + }, + "end": { + "line": 10, + "column": 16, + "offset": 173 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + }, + { + "name": "outVar", + "qualified_name": "prog.outVar", + "initial_value": null, + "argument_type": { + "ByVal": "Local" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ComplexEnumType", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 201 + }, + "end": { + "line": 11, + "column": 14, + "offset": 207 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "varargs": null + } + ], + "source": { + "Pou": "Program" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + ], + "adr": [ + { + "name": "ADR", + "initial_value": null, + "information": { + "Struct": { + "name": "ADR", + "members": [ + { + "name": "in", + "qualified_name": "ADR.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADR__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 20, + "offset": 119 + }, + "end": { + "line": 4, + "column": 22, + "offset": 121 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "ADR", + "qualified_name": "ADR.ADR", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "LWORD", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 25, + "offset": 53 + }, + "end": { + "line": 2, + "column": 28, + "offset": 56 + } + } + }, + "file": "Undefined" + } + } + ], + "move": [ + { + "name": "MOVE", + "initial_value": null, + "information": { + "Struct": { + "name": "MOVE", + "members": [ + { + "name": "in", + "qualified_name": "MOVE.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 20, + "offset": 265 + }, + "end": { + "line": 9, + "column": 22, + "offset": 267 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "MOVE", + "qualified_name": "MOVE.MOVE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MOVE__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 7, + "column": 22, + "offset": 202 + }, + "end": { + "line": 7, + "column": 26, + "offset": 206 + } + } + }, + "file": "Undefined" + } + } + ], + "add": [ + { + "name": "ADD", + "initial_value": null, + "information": { + "Struct": { + "name": "ADD", + "members": [ + { + "name": "args", + "qualified_name": "ADD.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 24, + "offset": 409 + }, + "end": { + "line": 13, + "column": 28, + "offset": 413 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__ADD__T" + } + }, + { + "name": "ADD", + "qualified_name": "ADD.ADD", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__ADD__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 38, + "offset": 335 + }, + "end": { + "line": 11, + "column": 41, + "offset": 338 + } + } + }, + "file": "Undefined" + } + } + ], + "ref": [ + { + "name": "REF", + "initial_value": null, + "information": { + "Struct": { + "name": "REF", + "members": [ + { + "name": "in", + "qualified_name": "REF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 20, + "column": 20, + "offset": 629 + }, + "end": { + "line": 20, + "column": 22, + "offset": 631 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "REF", + "qualified_name": "REF.REF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__REF_return", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 18, + "column": 25, + "offset": 560 + }, + "end": { + "line": 18, + "column": 28, + "offset": 563 + } + } + }, + "file": "Undefined" + } + } + ], + "gt": [ + { + "name": "GT", + "initial_value": null, + "information": { + "Struct": { + "name": "GT", + "members": [ + { + "name": "IN", + "qualified_name": "GT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 25, + "column": 20, + "offset": 791 + }, + "end": { + "line": 25, + "column": 22, + "offset": 793 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GT__T" + } + }, + { + "name": "GT", + "qualified_name": "GT.GT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 23, + "column": 26, + "offset": 716 + }, + "end": { + "line": 23, + "column": 28, + "offset": 718 + } + } + }, + "file": "Undefined" + } + } + ], + "le": [ + { + "name": "LE", + "initial_value": null, + "information": { + "Struct": { + "name": "LE", + "members": [ + { + "name": "IN", + "qualified_name": "LE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 30, + "column": 20, + "offset": 964 + }, + "end": { + "line": 30, + "column": 22, + "offset": 966 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LE__T" + } + }, + { + "name": "LE", + "qualified_name": "LE.LE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 28, + "column": 26, + "offset": 889 + }, + "end": { + "line": 28, + "column": 28, + "offset": 891 + } + } + }, + "file": "Undefined" + } + } + ], + "lower_bound": [ + { + "name": "LOWER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "LOWER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "LOWER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___LOWER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 35, + "column": 20, + "offset": 1154 + }, + "end": { + "line": 35, + "column": 23, + "offset": 1157 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "LOWER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LOWER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 38, + "column": 20, + "offset": 1233 + }, + "end": { + "line": 38, + "column": 23, + "offset": 1236 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "LOWER_BOUND", + "qualified_name": "LOWER_BOUND.LOWER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 33, + "column": 26, + "offset": 1062 + }, + "end": { + "line": 33, + "column": 37, + "offset": 1073 + } + } + }, + "file": "Undefined" + } + } + ], + "ne": [ + { + "name": "NE", + "initial_value": null, + "information": { + "Struct": { + "name": "NE", + "members": [ + { + "name": "IN1", + "qualified_name": "NE.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 42, + "column": 20, + "offset": 1379 + }, + "end": { + "line": 42, + "column": 23, + "offset": 1382 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "NE.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__NE__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 43, + "column": 20, + "offset": 1408 + }, + "end": { + "line": 43, + "column": 23, + "offset": 1411 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "NE", + "qualified_name": "NE.NE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 40, + "column": 38, + "offset": 1304 + }, + "end": { + "line": 40, + "column": 40, + "offset": 1306 + } + } + }, + "file": "Undefined" + } + } + ], + "sub": [ + { + "name": "SUB", + "initial_value": null, + "information": { + "Struct": { + "name": "SUB", + "members": [ + { + "name": "IN1", + "qualified_name": "SUB.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 48, + "column": 20, + "offset": 1569 + }, + "end": { + "line": 48, + "column": 23, + "offset": 1572 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "SUB.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 49, + "column": 20, + "offset": 1599 + }, + "end": { + "line": 49, + "column": 23, + "offset": 1602 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SUB", + "qualified_name": "SUB.SUB", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SUB__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 46, + "column": 26, + "offset": 1496 + }, + "end": { + "line": 46, + "column": 29, + "offset": 1499 + } + } + }, + "file": "Undefined" + } + } + ], + "mul": [ + { + "name": "MUL", + "initial_value": null, + "information": { + "Struct": { + "name": "MUL", + "members": [ + { + "name": "args", + "qualified_name": "MUL.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 54, + "column": 20, + "offset": 1754 + }, + "end": { + "line": 54, + "column": 24, + "offset": 1758 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUL__T" + } + }, + { + "name": "MUL", + "qualified_name": "MUL.MUL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUL__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 52, + "column": 26, + "offset": 1688 + }, + "end": { + "line": 52, + "column": 29, + "offset": 1691 + } + } + }, + "file": "Undefined" + } + } + ], + "mux": [ + { + "name": "MUX", + "initial_value": null, + "information": { + "Struct": { + "name": "MUX", + "members": [ + { + "name": "K", + "qualified_name": "MUX.K", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 59, + "column": 20, + "offset": 1915 + }, + "end": { + "line": 59, + "column": 21, + "offset": 1916 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "args", + "qualified_name": "MUX.args", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 60, + "column": 20, + "offset": 1945 + }, + "end": { + "line": 60, + "column": 24, + "offset": 1949 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__MUX__U" + } + }, + { + "name": "MUX", + "qualified_name": "MUX.MUX", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__MUX__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 57, + "column": 26, + "offset": 1853 + }, + "end": { + "line": 57, + "column": 29, + "offset": 1856 + } + } + }, + "file": "Undefined" + } + } + ], + "upper_bound": [ + { + "name": "UPPER_BOUND", + "initial_value": null, + "information": { + "Struct": { + "name": "UPPER_BOUND", + "members": [ + { + "name": "arr", + "qualified_name": "UPPER_BOUND.arr", + "initial_value": null, + "argument_type": { + "ByRef": "InOut" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__auto_pointer_to___UPPER_BOUND__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 65, + "column": 20, + "offset": 2137 + }, + "end": { + "line": 65, + "column": 23, + "offset": 2140 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "dim", + "qualified_name": "UPPER_BOUND.dim", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__UPPER_BOUND__T", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 68, + "column": 20, + "offset": 2216 + }, + "end": { + "line": 68, + "column": 23, + "offset": 2219 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "UPPER_BOUND", + "qualified_name": "UPPER_BOUND.UPPER_BOUND", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "DINT", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 63, + "column": 26, + "offset": 2045 + }, + "end": { + "line": 63, + "column": 37, + "offset": 2056 + } + } + }, + "file": "Undefined" + } + } + ], + "lt": [ + { + "name": "LT", + "initial_value": null, + "information": { + "Struct": { + "name": "LT", + "members": [ + { + "name": "IN", + "qualified_name": "LT.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__LT__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 72, + "column": 20, + "offset": 2362 + }, + "end": { + "line": 72, + "column": 22, + "offset": 2364 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__LT__T" + } + }, + { + "name": "LT", + "qualified_name": "LT.LT", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 70, + "column": 38, + "offset": 2287 + }, + "end": { + "line": 70, + "column": 40, + "offset": 2289 + } + } + }, + "file": "Undefined" + } + } + ], + "ge": [ + { + "name": "GE", + "initial_value": null, + "information": { + "Struct": { + "name": "GE", + "members": [ + { + "name": "IN", + "qualified_name": "GE.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__GE__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 77, + "column": 20, + "offset": 2535 + }, + "end": { + "line": 77, + "column": 22, + "offset": 2537 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__GE__T" + } + }, + { + "name": "GE", + "qualified_name": "GE.GE", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 75, + "column": 26, + "offset": 2460 + }, + "end": { + "line": 75, + "column": 28, + "offset": 2462 + } + } + }, + "file": "Undefined" + } + } + ], + "sel": [ + { + "name": "SEL", + "initial_value": null, + "information": { + "Struct": { + "name": "SEL", + "members": [ + { + "name": "G", + "qualified_name": "SEL.G", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 82, + "column": 20, + "offset": 2695 + }, + "end": { + "line": 82, + "column": 21, + "offset": 2696 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN0", + "qualified_name": "SEL.IN0", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 83, + "column": 20, + "offset": 2727 + }, + "end": { + "line": 83, + "column": 23, + "offset": 2730 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN1", + "qualified_name": "SEL.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 84, + "column": 20, + "offset": 2756 + }, + "end": { + "line": 84, + "column": 23, + "offset": 2759 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SEL", + "qualified_name": "SEL.SEL", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SEL__U", + "location_in_parent": 3, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 80, + "column": 26, + "offset": 2633 + }, + "end": { + "line": 80, + "column": 29, + "offset": 2636 + } + } + }, + "file": "Undefined" + } + } + ], + "eq": [ + { + "name": "EQ", + "initial_value": null, + "information": { + "Struct": { + "name": "EQ", + "members": [ + { + "name": "IN", + "qualified_name": "EQ.IN", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__EQ__T", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 89, + "column": 20, + "offset": 2919 + }, + "end": { + "line": 89, + "column": 22, + "offset": 2921 + } + } + }, + "file": "Undefined" + }, + "varargs": { + "Sized": "__EQ__T" + } + }, + { + "name": "EQ", + "qualified_name": "EQ.EQ", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "BOOL", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 87, + "column": 26, + "offset": 2844 + }, + "end": { + "line": 87, + "column": 28, + "offset": 2846 + } + } + }, + "file": "Undefined" + } + } + ], + "sizeof": [ + { + "name": "SIZEOF", + "initial_value": null, + "information": { + "Struct": { + "name": "SIZEOF", + "members": [ + { + "name": "in", + "qualified_name": "SIZEOF.in", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__SIZEOF__U", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 94, + "column": 20, + "offset": 3086 + }, + "end": { + "line": 94, + "column": 22, + "offset": 3088 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "SIZEOF", + "qualified_name": "SIZEOF.SIZEOF", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "ULINT", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 92, + "column": 26, + "offset": 3017 + }, + "end": { + "line": 92, + "column": 32, + "offset": 3023 + } + } + }, + "file": "Undefined" + } + } + ], + "div": [ + { + "name": "DIV", + "initial_value": null, + "information": { + "Struct": { + "name": "DIV", + "members": [ + { + "name": "IN1", + "qualified_name": "DIV.IN1", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 0, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 98, + "column": 20, + "offset": 3229 + }, + "end": { + "line": 98, + "column": 23, + "offset": 3232 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "IN2", + "qualified_name": "DIV.IN2", + "initial_value": null, + "argument_type": { + "ByVal": "Input" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T2", + "location_in_parent": 1, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 99, + "column": 20, + "offset": 3259 + }, + "end": { + "line": 99, + "column": 23, + "offset": 3262 + } + } + }, + "file": "Undefined" + }, + "varargs": null + }, + { + "name": "DIV", + "qualified_name": "DIV.DIV", + "initial_value": null, + "argument_type": { + "ByVal": "Return" + }, + "is_constant": false, + "is_var_external": false, + "data_type_name": "__DIV__T1", + "location_in_parent": 2, + "linkage": "Internal", + "binding": null, + "source_location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + }, + "varargs": null + } + ], + "source": { + "Pou": "Function" + } + } + }, + "nature": "Any", + "location": { + "span": { + "Range": { + "start": { + "line": 96, + "column": 38, + "offset": 3156 + }, + "end": { + "line": 96, + "column": 41, + "offset": 3159 + } + } + }, + "file": "Undefined" + } + } + ] + } + }, + "void_type": { + "name": "VOID", + "initial_value": null, + "information": "Void", + "nature": "Any", + "location": { + "span": "None", + "file": { + "Internal": "" + } + } + } + }, + "constant_expressions": { + "expressions": [ + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + [ + 0, + { + "expr": { + "Resolved": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "target_type_name": "DINT" + } + ], + null + ] + }, + "data_layout": { + "i1": 1, + "i8": 1, + "i16": 2, + "i32": 4, + "i64": 8, + "f32": 4, + "f64": 8, + "p64": 8, + "v64": 8, + "v128": 16, + "aggregate": 8 + }, + "labels": {}, + "config_variables": [] + }, + "unresolvables": [] + }, + "context": { + "sources": { + "programs.pli": { + "source": "\n TYPE ComplexEnumType : (\n orange := 10,\n yellow := 20,\n purple := 30\n );\n END_TYPE\n\n PROGRAM prog\n VAR\n inOutVar : ComplexEnumType;\n outVar: ComplexEnumType;\n END_VAR\n END_PROGRAM\n ", + "path": "programs.pli" + } + }, + "provider": { + "current_id": 99 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_9_programs_parsed_content.snap b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_9_programs_parsed_content.snap new file mode 100644 index 0000000000..21cb767ab1 --- /dev/null +++ b/compiler/plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__case_9_programs_parsed_content.snap @@ -0,0 +1,669 @@ +--- +source: compiler/plc_driver/src/tests/header_generator.rs +expression: json +--- +{ + "parsed_project": { + "units": [ + { + "global_vars": [], + "var_config": [], + "pous": [ + { + "id": 14, + "name": "prog", + "kind": "Program", + "variable_blocks": [ + { + "access": "Protected", + "constant": false, + "retain": false, + "variables": [ + { + "name": "inOutVar", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 19, + "offset": 176 + }, + "end": { + "line": 10, + "column": 34, + "offset": 191 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 10, + "column": 8, + "offset": 165 + }, + "end": { + "line": 10, + "column": 16, + "offset": 173 + } + } + }, + "file": { + "File": "programs.pli" + } + } + }, + { + "name": "outVar", + "data_type_declaration": { + "Reference": { + "referenced_type": "ComplexEnumType", + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 16, + "offset": 209 + }, + "end": { + "line": 11, + "column": 31, + "offset": 224 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + }, + "initializer": null, + "address": null, + "location": { + "span": { + "Range": { + "start": { + "line": 11, + "column": 8, + "offset": 201 + }, + "end": { + "line": 11, + "column": 14, + "offset": 207 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + ], + "kind": "Local", + "linkage": "Internal", + "location": { + "span": { + "Range": { + "start": { + "line": 9, + "column": 4, + "offset": 153 + }, + "end": { + "line": 9, + "column": 7, + "offset": 156 + } + } + }, + "file": { + "File": "programs.pli" + } + } + } + ], + "return_type": null, + "location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 4, + "offset": 136 + }, + "end": { + "line": 13, + "column": 15, + "offset": 253 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "poly_mode": null, + "generics": [], + "linkage": "Internal", + "super_class": null, + "is_const": false, + "interfaces": [], + "properties": [] + } + ], + "implementations": [ + { + "name": "prog", + "type_name": "prog", + "linkage": "Internal", + "pou_type": "Program", + "statements": [], + "location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 242 + }, + "end": { + "line": 12, + "column": 11, + "offset": 237 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "name_location": { + "span": { + "Range": { + "start": { + "line": 8, + "column": 12, + "offset": 144 + }, + "end": { + "line": 8, + "column": 16, + "offset": 148 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "end_location": { + "span": { + "Range": { + "start": { + "line": 13, + "column": 4, + "offset": 242 + }, + "end": { + "line": 13, + "column": 15, + "offset": 253 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "overriding": false, + "generic": false, + "access": null + } + ], + "interfaces": [], + "user_types": [ + { + "data_type": { + "EnumType": { + "name": "ComplexEnumType", + "numeric_type": "DINT", + "elements": { + "stmt": { + "ExpressionList": [ + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "orange" + }, + "id": 1, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 18, + "offset": 48 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 2, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 18, + "offset": 48 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 10 + } + }, + "id": 3, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 22, + "offset": 52 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "id": 4, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 2, + "column": 24, + "offset": 54 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "yellow" + }, + "id": 5, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 18, + "offset": 74 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 6, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 18, + "offset": 74 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 20 + } + }, + "id": 7, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 22, + "offset": 78 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "id": 8, + "location": { + "span": { + "Range": { + "start": { + "line": 3, + "column": 12, + "offset": 68 + }, + "end": { + "line": 3, + "column": 24, + "offset": 80 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + { + "stmt": { + "Assignment": { + "left": { + "stmt": { + "ReferenceExpr": { + "access": { + "Member": { + "stmt": { + "Identifier": "purple" + }, + "id": 9, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 18, + "offset": 100 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + }, + "base": null + } + }, + "id": 10, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 18, + "offset": 100 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + }, + "right": { + "stmt": { + "Literal": { + "Integer": 30 + } + }, + "id": 11, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 22, + "offset": 104 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "id": 12, + "location": { + "span": { + "Range": { + "start": { + "line": 4, + "column": 12, + "offset": 94 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + ] + }, + "id": 13, + "location": { + "span": { + "Range": { + "start": { + "line": 2, + "column": 12, + "offset": 42 + }, + "end": { + "line": 4, + "column": 24, + "offset": 106 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "metadata": null + } + } + }, + "initializer": null, + "location": { + "span": { + "Range": { + "start": { + "line": 1, + "column": 9, + "offset": 10 + }, + "end": { + "line": 1, + "column": 24, + "offset": 25 + } + } + }, + "file": { + "File": "programs.pli" + } + }, + "scope": null + } + ], + "file": { + "File": "programs.pli" + } + } + ] + }, + "context": { + "sources": { + "programs.pli": { + "source": "\n TYPE ComplexEnumType : (\n orange := 10,\n yellow := 20,\n purple := 30\n );\n END_TYPE\n\n PROGRAM prog\n VAR\n inOutVar : ComplexEnumType;\n outVar: ComplexEnumType;\n END_VAR\n END_PROGRAM\n ", + "path": "programs.pli" + } + }, + "provider": { + "current_id": 15 + }, + "error_fmt": "Rich" + } +} diff --git a/compiler/plc_header_generator/Cargo.toml b/compiler/plc_header_generator/Cargo.toml new file mode 100644 index 0000000000..cde4cdd27c --- /dev/null +++ b/compiler/plc_header_generator/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "plc_header_generator" +version = "0.1.0" +edition = "2021" + +[dependencies] +plc = { path = "../..", package = "rusty" } +plc_diagnostics = { path = "../plc_diagnostics/" } +plc_ast = { path = "../plc_ast/" } +plc_source = { path = "../plc_source/" } +tera = "1" +clap = { version = "3.0", features = ["derive"] } +regex = "1" +log.workspace = true +serde_json.workspace = true +serde.workspace = true + +[dev-dependencies] +insta.workspace = true diff --git a/compiler/plc_header_generator/src/header_generator.rs b/compiler/plc_header_generator/src/header_generator.rs new file mode 100644 index 0000000000..a4efa8581c --- /dev/null +++ b/compiler/plc_header_generator/src/header_generator.rs @@ -0,0 +1,284 @@ +use plc_ast::{ + ast::{ + self, AstNode, AstStatement, CompilationUnit, DataTypeDeclaration, ReferenceAccess, + UserTypeDeclaration, + }, + literals::AstLiteral, +}; +use plc_diagnostics::diagnostics::Diagnostic; + +use crate::{ + header_generator::{ + file_helper::FileHelper, + header_generator_c::GeneratedHeaderForC, + symbol_helper::SymbolHelper, + template_helper::{TemplateHelper, Variable, VariableType}, + type_helper::TypeHelper, + }, + GenerateHeaderOptions, GenerateLanguage, +}; + +pub mod file_helper; +mod header_generator_c; +mod symbol_helper; +mod template_helper; +mod type_helper; + +/// A combined trait containing all of the necessary implementations for generating a header +pub trait GeneratedHeader: FileHelper + TypeHelper + TemplateHelper + SymbolHelper { + /// Returns whether or not this generated header is empty + /// + /// --- + /// + /// This must return true if the generation process has not yet occured, + /// or was aborted in a valid case. + fn is_empty(&self) -> bool; + + /// Returns the contents of the header file + fn get_contents(&self) -> &str; + + /// Prepares the template data for this header given a compilation unit + /// + /// --- + /// + /// The outcome of this method must be a populated [TemplateData](crate::header_generator::template_helper::TemplateData) on the generated header + /// that contains all of the data necessary to run the templating engine. + fn prepare_template_data(&mut self, compilation_unit: &CompilationUnit); + + /// Runs the templating engine and generates the header file contents + /// + /// --- + /// + /// The outcome of this method must be a populated "contents" (accessible via the "get_contents" method) + /// on the generated header. + fn generate_headers(&mut self) -> Result<(), Diagnostic>; +} + +/// Returns a generated header given the options for generation and a compilation unit. +/// +/// --- +/// +/// Should the process fail to determine an output directory and path for the header file +/// a none-generated header will be returned, this is a valid outcome as some compilation units +/// are not related to a file. +pub fn get_generated_header( + generate_header_options: &GenerateHeaderOptions, + compilation_unit: &CompilationUnit, +) -> Result, Diagnostic> { + let mut generated_header: Box = match generate_header_options.language { + GenerateLanguage::C => { + let generated_header = GeneratedHeaderForC::new(); + Box::new(generated_header) + } + language => panic!("This language '{:?}' is not yet implemented!", language), + }; + + // Determine file and directory + // If the directories could not be configured with an acceptable outcome, then we exit without performing generation for this compilation unit + if !generated_header.determine_header_file_information(generate_header_options, compilation_unit) { + return Ok(generated_header); + } + + // Prepare the template data + generated_header.prepare_template_data(compilation_unit); + + // Generate the headers + generated_header.generate_headers()?; + + Ok(generated_header) +} + +/// A wrapper for a type name with extended information +pub struct ExtendedTypeName { + pub type_name: String, + pub is_variadic: bool, +} + +impl Default for ExtendedTypeName { + fn default() -> Self { + Self::new() + } +} + +impl ExtendedTypeName { + pub const fn new() -> Self { + ExtendedTypeName { type_name: String::new(), is_variadic: false } + } +} + +/// Given a name and a field name override, this will return the field name if present, the name if not, or default if the name is empty. +fn coalesce_field_name_override_with_default( + name: &Option, + field_name_override: Option<&String>, +) -> String { + if let Some(field_name_ovr) = field_name_override { + field_name_ovr.to_string() + } else { + name.clone().unwrap_or_default() + } +} + +/// Given an ast node this will extract the enum declarations an return a Vec. +/// +/// Will return an empty Vec if the statement of the node is not type [ExpressionList](plc_ast::ast::AstStatement::ExpressionList) +fn extract_enum_declaration_from_elements(node: &AstNode) -> Vec { + let mut enum_declarations: Vec = Vec::new(); + + match &node.stmt { + AstStatement::ExpressionList(exp_nodes) => { + for exp_node in exp_nodes { + match &exp_node.stmt { + AstStatement::Assignment(assignment) => { + let left = extract_enum_field_name_from_statement(&assignment.left.stmt); + let right = extract_enum_field_value_from_statement(&assignment.right.stmt); + + if right.is_empty() { + enum_declarations.push(Variable { + data_type: String::new(), + name: left, + variable_type: VariableType::Default, + }); + } else { + enum_declarations.push(Variable { + data_type: String::new(), + name: left, + variable_type: VariableType::Declaration(right), + }); + } + } + _ => continue, + } + } + } + _ => todo!(), + } + + enum_declarations +} + +/// Given an AstStatement, this will extract the name of the enum field. +/// +/// Will return a new string if the AstStatement type not [ReferenceExpr](plc_ast::ast::AstStatement::ReferenceExpr), +/// the access of that expression is not type [Member](plc_ast::ast::ReferenceAccess::Member) +/// and the statement of that member is not type [Identifier](plc_ast::ast::AstStatement::Identifier). +fn extract_enum_field_name_from_statement(statement: &AstStatement) -> String { + match statement { + AstStatement::ReferenceExpr(reference_expression) => match &reference_expression.access { + ReferenceAccess::Member(member_node) => { + let member_statement = member_node.get_stmt(); + match member_statement { + AstStatement::Identifier(enum_field) => enum_field.to_string(), + _ => String::new(), + } + } + _ => String::new(), + }, + _ => String::new(), + } +} + +/// Extracts the value from an AstStatement type [Literal](plc_ast::ast::AstStatement::Literal). +/// +/// Will return a new string if the AstStatement type is not [Literal](plc_ast::ast::AstStatement::Literal). +fn extract_enum_field_value_from_statement(statement: &AstStatement) -> String { + match statement { + AstStatement::Literal(literal) => literal.get_literal_value(), + _ => String::new(), + } +} + +/// Creates an ExtendedTypeName from a given Option. +/// +/// Will return the default for ExtendedTypeName if the data type declaration is not [Reference](plc_ast::ast::DataTypeDeclaration::Reference) or [Definition](plc_ast::ast::DataTypeDeclaration::Definition). +fn get_type_from_data_type_decleration( + data_type_declaration: &Option, +) -> ExtendedTypeName { + match data_type_declaration { + Some(DataTypeDeclaration::Reference { referenced_type, .. }) => { + ExtendedTypeName { type_name: referenced_type.clone(), is_variadic: false } + } + Some(DataTypeDeclaration::Definition { data_type, .. }) => { + let type_name: String = data_type.get_name().unwrap_or("").to_string(); + let is_variadic = matches!(&**data_type, ast::DataType::VarArgs { .. }); + + ExtendedTypeName { type_name, is_variadic } + } + _ => ExtendedTypeName::new(), + } +} + +/// Given a data type name and a list of user type declarations, +/// this will extract the user type declaration with a data type name that matches the given data type name. +/// +/// This will return None in the case that the given data type name does not match the data type name of the user type declaration. +fn get_user_generated_type_by_name<'a>( + name: &'a str, + user_types: &'a [UserTypeDeclaration], +) -> Option<&'a UserTypeDeclaration> { + for user_type in user_types { + if let Some(data_type_name) = user_type.data_type.get_name() { + if data_type_name == name { + return Some(user_type); + } + } + } + + None +} + +/// Given an Option containing a [Literal](plc_ast::ast::AstStatement::Literal), this will determine the [i128] size of a string. +/// +/// This will return [i128] default in the case the AstNode is None or does not match the expected [Literal](plc_ast::ast::AstStatement::Literal). +fn extract_string_size(size: &Option) -> i128 { + if size.is_none() { + return i128::default(); + } + + let size = size.clone().unwrap(); + + match size.stmt { + // TODO: Verify if the string-termination-marker needs to be accounted for + AstStatement::Literal(AstLiteral::Integer(value)) => value, + _ => i128::default(), + } +} + +/// Given an AstNode containing a [RangeStatement](plc_ast::ast::AstStatement::RangeStatement), this will determine the [i128] size of an array. +/// +/// This will return [i128] default in the case the AstNode does not match the expected [RangeStatement](plc_ast::ast::AstStatement::RangeStatement). +fn extract_array_size(bounds: &AstNode) -> i128 { + match &bounds.stmt { + AstStatement::RangeStatement(range_stmt) => { + let start_value = match range_stmt.start.get_stmt() { + AstStatement::Literal(AstLiteral::Integer(value)) => *value, + _ => i128::default(), + }; + + let end_value = match range_stmt.end.get_stmt() { + AstStatement::Literal(AstLiteral::Integer(value)) => *value, + _ => i128::default(), + }; + + end_value - start_value + 1 + } + _ => i128::default(), + } +} + +/// Common method for determining if the string representation of the data type name is system generated. +/// +/// i.e. Starts with "__" +fn data_type_is_system_generated(data_type: &str) -> bool { + if data_type.starts_with("__") { + return true; + } + + false +} + +/// Prepares a method name for a header file +/// +/// i.e. Any "." character will be replaced with "__" +fn sanitize_method_name(method_name: &str) -> String { + method_name.replace(".", "__").to_string() +} diff --git a/compiler/plc_header_generator/src/header_generator/file_helper.rs b/compiler/plc_header_generator/src/header_generator/file_helper.rs new file mode 100644 index 0000000000..31ad763223 --- /dev/null +++ b/compiler/plc_header_generator/src/header_generator/file_helper.rs @@ -0,0 +1,172 @@ +use std::path::PathBuf; + +use plc_ast::ast::CompilationUnit; +use plc_source::source_location::FileMarker; + +use regex::Regex; + +use crate::GenerateHeaderOptions; + +mod file_helper_c; + +pub trait FileHelper { + /// Returns the directory the header should be written to + /// + /// --- + /// + /// This should return the directory for writing the header to (without the header file). + /// It can return an empty string if the header is being written to the same directory as the interface itself. + fn get_directory(&self) -> &str; + + /// Returns the file path that the header file should be written to + fn get_path(&self) -> &str; + + /// Determines file information for the header file and returns whether or not the determination was successful + /// + /// --- + /// + /// The succesful result of this method must be that the "directory" (accessible via the "get_directory" method) + /// and the "path" (accessible via the "get_path" method) are both populated with valid results. + fn determine_header_file_information( + &mut self, + generate_header_options: &GenerateHeaderOptions, + compilation_unit: &CompilationUnit, + ) -> bool; +} + +/// Given a GenerateHeaderOptions, CompilationUnit and a file extension (string) +/// this will return a struct containing header file information, +/// and a boolean defining whether or not the process was successful. +fn get_header_file_information( + generate_header_options: &GenerateHeaderOptions, + compilation_unit: &CompilationUnit, + file_extension: &str, +) -> (HeaderFileInformation, bool) { + let file_path = match compilation_unit.file { + FileMarker::File(file_path) => PathBuf::from(file_path), + _ => PathBuf::from(String::new()), + }; + + let mut output_path = if generate_header_options.output_path.as_os_str().is_empty() { + if file_path.parent().is_some() { + PathBuf::from(file_path.parent().unwrap()) + } else { + PathBuf::from(String::new()) + } + } else { + generate_header_options.output_path.clone() + }; + + let output_dir = output_path.clone(); + let (output_name, file_name) = if generate_header_options.prefix.is_empty() { + let option_file_name = get_file_name_from_path_buf_without_extension(file_path); + if let Some(file_name) = option_file_name { + (format!("{}.{}", file_name, file_extension), format_file_name(&file_name)) + } else { + (String::new(), String::new()) + } + } else { + ( + format!("{}.{}", generate_header_options.prefix, file_extension), + format_file_name(&generate_header_options.prefix), + ) + }; + + if output_name.is_empty() { + // This means this compilation unit is not associated with a file. + // In this case we aren't interested in drilling into it. + return (HeaderFileInformation::default(), false); + } + + output_path.push(&output_name); + + ( + HeaderFileInformation { + directory: String::from(output_dir.to_str().expect("Unable to determine the output directory!")), + path: String::from(output_path.to_str().expect("Unable to determine the output path!")), + name: file_name.to_string(), + }, + true, + ) +} + +/// Returns the file name from a path buffer without the extension +/// +/// --- +/// +/// Will return [None] if no file name is found or if the file name has no extension. +fn get_file_name_from_path_buf_without_extension(file_path: PathBuf) -> Option { + if file_path.file_name().is_some() { + let file_name = file_path.file_name().unwrap().to_str(); + file_name?; + + let file_name = file_name.unwrap().split('.').next().unwrap_or(""); + + if file_name.is_empty() { + return None; + } + + Some(String::from(file_name)) + } else { + None + } +} + +/// Formats and returns a file name that is safe for definition usage +/// +/// --- +/// +/// Example: +/// ```ignore +/// "I a!m a v@3#r$y s%t^r&a*n(g)e f`i~l[e_n]4{m}e t\\h/a:t s;h'o\"ud b,e f.i?x-ed" +/// ``` +/// ... should be formatted to ... +/// ```ignore +/// "I_AM_A_V3RY_STRANGE_FILE_N4ME_THAT_SHOULD_BE_FIXED" +/// ``` +fn format_file_name(file_name: &str) -> String { + let white_space_regex = Regex::new(r"\s").unwrap(); + let white_space_formatted = white_space_regex.replace_all(file_name, "_").to_string(); + + let underscore_regex = Regex::new(r"\_{2,}").unwrap(); + let underscore_formatted = underscore_regex.replace_all(&white_space_formatted, "_").to_string(); + + let character_regex = Regex::new(r"[A-Z]*[a-z]*[0-9]*\_*").unwrap(); + + let mut formatted_file_name = String::new(); + for caps in character_regex.captures_iter(&underscore_formatted) { + formatted_file_name += caps.get(0).unwrap().as_str(); + } + + formatted_file_name.to_uppercase() +} + +pub struct HeaderFileInformation { + pub directory: String, + pub path: String, + pub name: String, +} + +impl Default for HeaderFileInformation { + fn default() -> Self { + Self::new() + } +} + +impl HeaderFileInformation { + pub const fn new() -> Self { + HeaderFileInformation { directory: String::new(), path: String::new(), name: String::new() } + } +} + +#[cfg(test)] +mod file_helper_tests { + use crate::header_generator::file_helper::format_file_name; + + #[test] + fn test_format_file_name_weird_file_characters() { + let valid_file_name = + "I a!m a v@3#r$y s%t^r&a*n(g)e f`i~l[e_n]4{m}e t\\h/a:t s;h'o\"ud b,e f.i?x-ed"; + assert_eq!(format_file_name(valid_file_name), "I_AM_A_V3RY_STRANGE_FILE_N4ME_THAT_SHOULD_BE_FIXED"); + } +} diff --git a/compiler/plc_header_generator/src/header_generator/file_helper/file_helper_c.rs b/compiler/plc_header_generator/src/header_generator/file_helper/file_helper_c.rs new file mode 100644 index 0000000000..e36c4c0b75 --- /dev/null +++ b/compiler/plc_header_generator/src/header_generator/file_helper/file_helper_c.rs @@ -0,0 +1,31 @@ +use plc_ast::ast::CompilationUnit; + +use crate::{ + header_generator::{ + file_helper::{get_header_file_information, FileHelper}, + header_generator_c::GeneratedHeaderForC, + }, + GenerateHeaderOptions, +}; + +impl FileHelper for GeneratedHeaderForC { + fn get_directory(&self) -> &str { + &self.file_information.directory + } + + fn get_path(&self) -> &str { + &self.file_information.path + } + + fn determine_header_file_information( + &mut self, + generate_header_options: &GenerateHeaderOptions, + compilation_unit: &CompilationUnit, + ) -> bool { + let (file_information, determined_successfully) = + get_header_file_information(generate_header_options, compilation_unit, "h"); + self.file_information = file_information; + + determined_successfully + } +} diff --git a/compiler/plc_header_generator/src/header_generator/header_generator_c.rs b/compiler/plc_header_generator/src/header_generator/header_generator_c.rs new file mode 100644 index 0000000000..00065cf343 --- /dev/null +++ b/compiler/plc_header_generator/src/header_generator/header_generator_c.rs @@ -0,0 +1,650 @@ +use std::collections::HashMap; + +use plc::typesystem::{get_builtin_types, DataType, LWORD_TYPE}; +use plc_ast::ast::{ + self, ArgumentProperty, CompilationUnit, Identifier, Pou, PouType, UserTypeDeclaration, VariableBlock, + VariableBlockType, +}; +use plc_diagnostics::diagnostics::Diagnostic; +use tera::{from_value, to_value, Context, Tera}; + +use crate::header_generator::{ + coalesce_field_name_override_with_default, data_type_is_system_generated, extract_array_size, + extract_enum_declaration_from_elements, extract_string_size, + file_helper::HeaderFileInformation, + get_type_from_data_type_decleration, get_user_generated_type_by_name, sanitize_method_name, + symbol_helper::SymbolHelper, + template_helper::{ + Function, TemplateData, TemplateHelper, TemplateType, UserType, Variable, VariableType, + }, + type_helper::{TypeAttribute, TypeHelper}, + ExtendedTypeName, GeneratedHeader, +}; + +/// The constant value for the string that is appended to types added by the header generation process +const TYPE_APPEND: &str = "_type"; + +pub struct GeneratedHeaderForC { + pub file_information: HeaderFileInformation, + contents: String, + pub template_data: TemplateData, +} + +impl Default for GeneratedHeaderForC { + fn default() -> Self { + Self::new() + } +} + +impl GeneratedHeader for GeneratedHeaderForC { + fn is_empty(&self) -> bool { + self.file_information.directory.is_empty() + && self.file_information.path.is_empty() + && self.contents.is_empty() + } + + fn get_contents(&self) -> &str { + &self.contents + } + + fn prepare_template_data(&mut self, compilation_unit: &CompilationUnit) { + let builtin_types = get_builtin_types(); + + self.prepare_global_variables(compilation_unit, &builtin_types); + self.prepare_user_types(compilation_unit, &builtin_types); + self.prepare_functions(compilation_unit, &builtin_types); + } + + fn generate_headers(&mut self) -> Result<(), Diagnostic> { + // Configure tera + let mut tera = Tera::default(); + let mut context = Context::new(); + + let template = self.get_template(TemplateType::Header); + tera.add_raw_template(&template.name, &template.content) + .expect("Unable to add the 'header' template to tera!"); + tera.register_function( + "format_variable_for_parameter", + format_variable_for_parameter(self.get_reference_symbol(), self.get_variadic_symbol()), + ); + tera.register_function("format_variable_for_definition", format_variable_for_definition()); + tera.register_function("format_variable_for_enum_definition", format_variable_for_enum_definition()); + + context.insert("global_variables", &self.template_data.global_variables); + context.insert("user_defined_types", &self.template_data.user_defined_types); + context.insert("functions", &self.template_data.functions); + context.insert("file_name_caps", &self.file_information.name); + + // Set the outputs + self.contents = tera.render(&template.name, &context).unwrap(); + + Ok(()) + } +} + +impl GeneratedHeaderForC { + pub const fn new() -> Self { + GeneratedHeaderForC { + file_information: HeaderFileInformation::new(), + template_data: TemplateData::new(), + contents: String::new(), + } + } + + /// Populates the self scoped [TemplateData] instance with the user types that should be added to the generated header file + fn prepare_user_types(&mut self, compilation_unit: &CompilationUnit, builtin_types: &[DataType]) { + for user_type in &compilation_unit.user_types { + self.prepare_user_type(user_type, builtin_types, &compilation_unit.user_types); + } + } + + /// Populates the self scoped [TemplateData] instance with the global variables that should be added to the generated header file + fn prepare_global_variables(&mut self, compilation_unit: &CompilationUnit, builtin_types: &[DataType]) { + self.template_data.global_variables = self.get_variables_from_variable_blocks( + &compilation_unit.global_vars, + builtin_types, + &[VariableBlockType::Global], + &compilation_unit.user_types, + ); + } + + /// Populates the self scoped [TemplateData] instance with the functions that should be added to the generated header file + fn prepare_functions(&mut self, compilation_unit: &CompilationUnit, builtin_types: &[DataType]) { + for pou in &compilation_unit.pous { + match &pou.kind { + PouType::Function => { + let type_info = &self.get_type_name_for_type( + &get_type_from_data_type_decleration(&pou.return_type), + builtin_types, + ); + + let parameters = self.get_variables_from_variable_blocks( + &pou.variable_blocks, + builtin_types, + &[ + VariableBlockType::Input(ArgumentProperty::ByRef), + VariableBlockType::Input(ArgumentProperty::ByVal), + VariableBlockType::InOut, + VariableBlockType::Output, + ], + &compilation_unit.user_types, + ); + + self.template_data.functions.push(Function { + name: sanitize_method_name(&pou.name), + return_type: type_info.get_type_name(), + parameters, + }); + } + PouType::FunctionBlock => { + self.prepare_function_block(pou, compilation_unit, builtin_types); + } + PouType::Program => { + let program_name = pou.name.to_string(); + let data_type = format!("{program_name}{TYPE_APPEND}"); + + // Adds the global variable instance for this program + self.template_data.global_variables.push(Variable { + data_type, + name: format!("{program_name}_instance"), + variable_type: VariableType::Default, + }); + + self.prepare_function_block(pou, compilation_unit, builtin_types); + } + PouType::Method { parent, .. } => { + let type_info = &self.get_type_name_for_type( + &get_type_from_data_type_decleration(&pou.return_type), + builtin_types, + ); + + let data_type = format!("{parent}{TYPE_APPEND}"); + + let mut parameters: Vec = Vec::new(); + parameters.push(Variable { + data_type: format!("{data_type}{}", self.get_reference_symbol()), + name: String::from("self"), + variable_type: VariableType::Default, + }); + + parameters.append(&mut self.get_variables_from_variable_blocks( + &pou.variable_blocks, + builtin_types, + &[ + VariableBlockType::Input(ArgumentProperty::ByRef), + VariableBlockType::Input(ArgumentProperty::ByVal), + VariableBlockType::InOut, + VariableBlockType::Output, + ], + &compilation_unit.user_types, + )); + + self.template_data.functions.push(Function { + name: sanitize_method_name(&pou.name), + return_type: type_info.get_type_name(), + parameters, + }); + } + _ => continue, + } + } + } + + /// Populates the self scoped [TemplateData] instance with the user type that should be added to the generated header file + fn prepare_user_type( + &mut self, + user_type: &UserTypeDeclaration, + builtin_types: &[DataType], + user_types: &[UserTypeDeclaration], + ) { + // We generally want to skip the declaration of user types that are only internally relevant + if let Some(data_type_name) = &user_type.data_type.get_name() { + if data_type_name.starts_with("__") { + return; + } + } + + match &user_type.data_type { + ast::DataType::StructType { name, variables } => { + let formatted_variables = self.get_transformed_variables_from_variables( + variables, + builtin_types, + false, + user_types, + ); + + self.template_data.user_defined_types.structs.push(UserType { + name: name.clone().unwrap_or_default(), + variables: formatted_variables, + }); + } + ast::DataType::EnumType { name, elements, .. } => { + let enum_declerations = extract_enum_declaration_from_elements(elements); + + self.template_data + .user_defined_types + .enums + .push(UserType { name: name.clone().unwrap_or_default(), variables: enum_declerations }); + } + ast::DataType::ArrayType { name, bounds, referenced_type, .. } => { + self.template_data.user_defined_types.aliases.push(Variable { + data_type: referenced_type.get_name().unwrap_or_default().to_string(), + name: name.clone().unwrap_or_default(), + variable_type: VariableType::Array(extract_array_size(bounds)), + }); + } + ast::DataType::PointerType { name, referenced_type, .. } => { + let data_type = format!( + "{}{}", + referenced_type.get_name().unwrap_or_default(), + self.get_reference_symbol() + ); + + self.template_data.user_defined_types.aliases.push(Variable { + data_type, + name: name.clone().unwrap_or_default(), + variable_type: VariableType::Default, + }); + } + ast::DataType::StringType { name, is_wide, size } => { + self.template_data.user_defined_types.aliases.push(Variable { + data_type: self.get_type_name_for_string(is_wide), + name: name.clone().unwrap_or_default(), + variable_type: VariableType::Array(extract_string_size(size)), + }); + } + ast::DataType::SubRangeType { name, referenced_type, .. } => { + self.template_data.user_defined_types.aliases.push(Variable { + data_type: referenced_type.clone(), + name: name.clone().unwrap_or_default(), + variable_type: VariableType::Default, + }); + } + _ => { + // The rest of these are not managed here + } + } + } + + /// Populates the self scoped [TemplateData] instance with the necessary structs and functions created by a function block implementation + fn prepare_function_block( + &mut self, + pou: &Pou, + compilation_unit: &CompilationUnit, + builtin_types: &[DataType], + ) { + let type_info = &self + .get_type_name_for_type(&get_type_from_data_type_decleration(&pou.return_type), builtin_types); + + let function_name = pou.name.to_string(); + let data_type = format!("{function_name}{TYPE_APPEND}"); + + // Create the template for the function block user type + let input_variables = self.get_variables_from_variable_blocks( + &pou.variable_blocks, + builtin_types, + &[ + VariableBlockType::Input(ArgumentProperty::ByRef), + VariableBlockType::Input(ArgumentProperty::ByVal), + VariableBlockType::InOut, + VariableBlockType::Output, + VariableBlockType::Local, + ], + &compilation_unit.user_types, + ); + + if let Some(super_class) = &pou.super_class { + self.template_data.user_defined_types.structs.push(UserType { + name: data_type.to_string(), + variables: self + .modify_function_block_variables_for_inheritance(&input_variables, super_class), + }); + } else { + self.template_data + .user_defined_types + .structs + .push(UserType { name: data_type.to_string(), variables: input_variables }); + } + + // Push the initialization global variable + self.template_data.global_variables.push(Variable { + data_type: data_type.to_string(), + name: format!("__{function_name}__init"), + variable_type: VariableType::Declaration(String::from("{ 0 }")), + }); + + // Push the parameters for the function + let mut parameters: Vec = Vec::new(); + parameters.push(Variable { + data_type: format!("{data_type}{}", self.get_reference_symbol()), + name: String::from("self"), + variable_type: VariableType::Default, + }); + + self.template_data.functions.push(Function { + return_type: type_info.get_type_name(), + name: function_name, + parameters, + }); + } + + /// Modifies the variables from a function block to account for differences in the naming convention of the super class. + fn modify_function_block_variables_for_inheritance( + &self, + input_variables: &[Variable], + super_class: &Identifier, + ) -> Vec { + let mut modified_input_variables: Vec = Vec::new(); + + for input_variable in input_variables { + if input_variable.data_type == super_class.name { + modified_input_variables.push(Variable { + name: input_variable.name.clone(), + data_type: format!("{}{TYPE_APPEND}", input_variable.data_type), + variable_type: input_variable.variable_type.clone(), + }); + } else { + modified_input_variables.push(Variable { + name: input_variable.name.clone(), + data_type: input_variable.data_type.clone(), + variable_type: input_variable.variable_type.clone(), + }); + } + } + + modified_input_variables + } + + /// Transforms the variables in an array of [variable blocks](plc_ast::ast::VariableBlock) into simplified [variables](crate::header_generator::template_helper::Variable) + /// that can be rendered by the template. + /// + /// --- + /// + /// Might return an empty [Vec] if no variables are found within the variable blocks. + fn get_variables_from_variable_blocks( + &mut self, + variable_blocks: &[VariableBlock], + builtin_types: &[DataType], + variable_block_types: &[VariableBlockType], + user_types: &[UserTypeDeclaration], + ) -> Vec { + let mut variables: Vec = Vec::new(); + + for variable_block in variable_blocks { + if variable_block_types.contains(&variable_block.kind) { + let is_reference = variable_block.kind == VariableBlockType::Input(ArgumentProperty::ByRef) + || variable_block.kind == VariableBlockType::InOut + || variable_block.kind == VariableBlockType::Output; + + variables.append(&mut self.get_transformed_variables_from_variables( + &variable_block.variables, + builtin_types, + is_reference, + user_types, + )); + } + } + + variables + } + + /// Transforms an array of [ast variables](plc_ast::ast::Variable) into simplified [variables](crate::header_generator::template_helper::Variable) + /// that can be rendered by the template. + /// + /// --- + /// + /// Might return an empty [Vec] if no variables are supplied. + fn get_transformed_variables_from_variables( + &mut self, + variable_block_variables: &[plc_ast::ast::Variable], + builtin_types: &[DataType], + is_reference: bool, + user_types: &[UserTypeDeclaration], + ) -> Vec { + let mut variables: Vec = Vec::new(); + let mut reference_symbol = if is_reference { self.get_reference_symbol() } else { String::new() }; + + for variable in variable_block_variables { + // Handle the special __vtable case + let type_info = if variable.get_name() == "__vtable" { + reference_symbol = self.get_reference_symbol(); + + self.get_type_name_for_type( + &ExtendedTypeName { type_name: LWORD_TYPE.into(), is_variadic: false }, + builtin_types, + ) + } else { + self.get_type_name_for_type( + &get_type_from_data_type_decleration(&Some(variable.data_type_declaration.clone())), + builtin_types, + ) + }; + + let data_type = format!("{}{reference_symbol}", type_info.get_type_name()); + + match type_info.attribute { + TypeAttribute::UserGenerated => { + let type_name = type_info.get_type_name(); + let option_user_type = get_user_generated_type_by_name(&type_name, user_types); + + if let Some(user_type) = option_user_type { + let user_type_variable = self.get_user_type_variable( + user_type, + builtin_types, + Some(&String::from(variable.get_name())), + Some(&type_name), + ); + + if let Some(value) = user_type_variable { + // This is an alias + if type_name != value.data_type && !data_type_is_system_generated(&type_name) { + variables.push(Variable { + data_type: type_name, + name: value.name, + variable_type: value.variable_type, + }) + } else { + variables.push(value); + } + } + } else { + variables.push(Variable { + data_type, + name: variable.get_name().to_string(), + variable_type: VariableType::Default, + }); + } + } + TypeAttribute::Variadic => { + variables.push(Variable { + data_type, + name: variable.get_name().to_string(), + variable_type: VariableType::Variadic, + }); + } + TypeAttribute::Default => { + variables.push(Variable { + data_type, + name: variable.get_name().to_string(), + variable_type: VariableType::Default, + }); + } + } + } + + variables + } + + /// Returns an [Variable] based on a given [UserTypeDeclaration] + /// + /// --- + /// + /// Might return [None] if the data type name of the [UserTypeDeclaration] is system generated. + /// This is because these system generated user types are not relevant to the header. + fn get_user_type_variable( + &mut self, + user_type: &UserTypeDeclaration, + builtin_types: &[DataType], + field_name_override: Option<&String>, + type_name_override: Option<&String>, + ) -> Option { + // We generally want to skip the declaration of user types that are only internally relevant + if let Some(data_type_name) = user_type.data_type.get_name() { + if data_type_is_system_generated(data_type_name) { + if let Some(field_name) = field_name_override { + if data_type_is_system_generated(field_name) { + return None; + } + } else { + return None; + } + } + } + + match &user_type.data_type { + ast::DataType::StructType { name, .. } => Some(Variable { + name: coalesce_field_name_override_with_default(name, field_name_override), + data_type: type_name_override.unwrap().to_string(), + variable_type: VariableType::Struct, + }), + ast::DataType::EnumType { name, .. } => Some(Variable { + name: coalesce_field_name_override_with_default(name, field_name_override), + data_type: type_name_override.unwrap().to_string(), + variable_type: VariableType::Default, + }), + ast::DataType::StringType { name, size, is_wide } => Some(Variable { + name: coalesce_field_name_override_with_default(name, field_name_override), + data_type: self.get_type_name_for_string(is_wide), + variable_type: VariableType::Array(extract_string_size(size)), + }), + ast::DataType::ArrayType { name, bounds, referenced_type, .. } => { + let type_info = self.get_type_name_for_type( + &ExtendedTypeName { + type_name: referenced_type.get_name().unwrap().to_string(), + is_variadic: false, + }, + builtin_types, + ); + + Some(Variable { + name: coalesce_field_name_override_with_default(name, field_name_override), + data_type: type_info.get_type_name(), + variable_type: VariableType::Array(extract_array_size(bounds)), + }) + } + ast::DataType::PointerType { name, referenced_type, .. } => { + let type_info = self.get_type_name_for_type( + &ExtendedTypeName { + type_name: referenced_type.get_name().unwrap().to_string(), + is_variadic: false, + }, + builtin_types, + ); + + let data_type = format!("{}{}", type_info.get_type_name(), self.get_reference_symbol()); + + Some(Variable { + name: coalesce_field_name_override_with_default(name, field_name_override), + data_type, + variable_type: VariableType::Default, + }) + } + ast::DataType::SubRangeType { name, referenced_type, .. } => { + let type_info = self.get_type_name_for_type( + &ExtendedTypeName { type_name: referenced_type.to_string(), is_variadic: false }, + builtin_types, + ); + + Some(Variable { + name: coalesce_field_name_override_with_default(name, field_name_override), + data_type: type_info.get_type_name(), + variable_type: VariableType::Default, + }) + } + ast::DataType::VarArgs { .. } => Some(Variable { + name: String::new(), + data_type: String::new(), + variable_type: VariableType::Variadic, + }), + ast::DataType::GenericType { .. } => { + // Currently out of scope + None + } + } + } +} + +/// Formats a variable for definition within an enum block. +/// +/// It handles the case where a enum may contiain a value on the right side for definition, or none. +/// +/// --- +/// +/// This function is used by the templating engine [tera](https://keats.github.io/tera/). +fn format_variable_for_enum_definition() -> impl tera::Function { + Box::new(move |args: &HashMap| -> tera::Result { + match args.get("variable") { + Some(value) => match from_value::(value.clone()) { + Ok(variable) => match variable.variable_type { + VariableType::Declaration(right) => { + Ok(to_value(format!("{} = {}", variable.name, right)).unwrap()) + } + _ => Ok(to_value(format!("{}{}", variable.data_type, variable.name)).unwrap()), + }, + Err(_) => Err("Unable to format variable for parameter!".into()), + }, + None => Err("Unable to format variable for parameter!".into()), + } + }) +} + +/// Formats a variable for standalone definition. +/// +/// --- +/// +/// This function is used by the templating engine [tera](https://keats.github.io/tera/). +fn format_variable_for_definition() -> impl tera::Function { + Box::new(move |args: &HashMap| -> tera::Result { + match args.get("variable") { + Some(value) => match from_value::(value.clone()) { + Ok(variable) => match variable.variable_type { + VariableType::Array(size) => { + Ok(to_value(format!("{} {}[{}]", variable.data_type, variable.name, size)).unwrap()) + } + VariableType::Declaration(right) => { + Ok(to_value(format!("{} {} = {}", variable.data_type, variable.name, right)).unwrap()) + } + _ => Ok(to_value(format!("{} {}", variable.data_type, variable.name)).unwrap()), + }, + Err(_) => Err("Unable to format variable for parameter!".into()), + }, + None => Err("Unable to format variable for parameter!".into()), + } + }) +} + +/// Formats a variable for definition as a parameter. +/// +/// i.e. When defined within a function's brackets "()" +/// +/// --- +/// +/// This function is used by the templating engine [tera](https://keats.github.io/tera/). +fn format_variable_for_parameter(reference_symbol: String, variadic_symbol: String) -> impl tera::Function { + Box::new(move |args: &HashMap| -> tera::Result { + match args.get("variable") { + Some(value) => match from_value::(value.clone()) { + Ok(variable) => match variable.variable_type { + VariableType::Array(_) | VariableType::Struct => { + Ok(to_value(format!("{}{} {}", variable.data_type, reference_symbol, variable.name)) + .unwrap()) + } + VariableType::Variadic => Ok(to_value(variadic_symbol.to_string()).unwrap()), + _ => Ok(to_value(format!("{} {}", variable.data_type, variable.name)).unwrap()), + }, + Err(_) => Err("Unable to format variable for parameter!".into()), + }, + None => Err("Unable to format variable for parameter!".into()), + } + }) +} diff --git a/compiler/plc_header_generator/src/header_generator/symbol_helper.rs b/compiler/plc_header_generator/src/header_generator/symbol_helper.rs new file mode 100644 index 0000000000..f2b933a36c --- /dev/null +++ b/compiler/plc_header_generator/src/header_generator/symbol_helper.rs @@ -0,0 +1,9 @@ +mod symbol_helper_c; + +pub trait SymbolHelper { + /// Returns the reference symbol for the defined language + fn get_reference_symbol(&self) -> String; + + /// Returns the variadic symbol for the defined language + fn get_variadic_symbol(&self) -> String; +} diff --git a/compiler/plc_header_generator/src/header_generator/symbol_helper/symbol_helper_c.rs b/compiler/plc_header_generator/src/header_generator/symbol_helper/symbol_helper_c.rs new file mode 100644 index 0000000000..d285af365b --- /dev/null +++ b/compiler/plc_header_generator/src/header_generator/symbol_helper/symbol_helper_c.rs @@ -0,0 +1,22 @@ +use crate::header_generator::{header_generator_c::GeneratedHeaderForC, symbol_helper::SymbolHelper}; + +impl SymbolHelper for GeneratedHeaderForC { + fn get_reference_symbol(&self) -> String { + String::from(C_REFERENCE_SYMBOL) + } + + fn get_variadic_symbol(&self) -> String { + String::from(C_VARIADIC_SYMBOL) + } +} + +// ------------------- // +// -- "C" Constants -- // + +/// The constant value for the "c" reference symbol +const C_REFERENCE_SYMBOL: &str = "*"; + +/// The constant value for the "c" variadic symbol +const C_VARIADIC_SYMBOL: &str = "..."; + +// ------------------- // diff --git a/compiler/plc_header_generator/src/header_generator/template_helper.rs b/compiler/plc_header_generator/src/header_generator/template_helper.rs new file mode 100644 index 0000000000..4a6fed117b --- /dev/null +++ b/compiler/plc_header_generator/src/header_generator/template_helper.rs @@ -0,0 +1,102 @@ +use serde::{Deserialize, Serialize}; + +mod template_helper_c; + +pub trait TemplateHelper { + /// Returns the template data of the header file, which is an object representation of the data that will be written to the header template + fn get_template_data(&self) -> &TemplateData; + + /// Returns the template for the defined language based on the given template type + fn get_template(&self, template_type: TemplateType) -> Template; +} + +pub struct Template { + pub content: String, + pub name: String, +} + +pub enum TemplateType { + Header, +} + +/// The template data used by the templating engine to build a header +#[derive(Serialize, Deserialize)] +pub struct TemplateData { + pub user_defined_types: UserDefinedTypes, + pub global_variables: Vec, + pub functions: Vec, +} + +impl Default for TemplateData { + fn default() -> Self { + Self::new() + } +} + +impl TemplateData { + pub const fn new() -> Self { + TemplateData { + user_defined_types: UserDefinedTypes::new(), + global_variables: Vec::new(), + functions: Vec::new(), + } + } +} + +/// A representation of the possible user types used by the template data +#[derive(Serialize, Deserialize)] +pub struct UserDefinedTypes { + pub aliases: Vec, + pub structs: Vec, + pub enums: Vec, +} + +impl Default for UserDefinedTypes { + fn default() -> Self { + Self::new() + } +} + +impl UserDefinedTypes { + pub const fn new() -> Self { + UserDefinedTypes { aliases: Vec::new(), structs: Vec::new(), enums: Vec::new() } + } +} + +/// A representation of a user type used by the template data +#[derive(Serialize, Deserialize)] +pub struct UserType { + pub name: String, + pub variables: Vec, +} + +/// A representation of a variable used by the template data +#[derive(Serialize, Deserialize)] +pub struct Variable { + pub data_type: String, + pub name: String, + pub variable_type: VariableType, +} + +/// The type of variable used by the template data +#[derive(Serialize, Deserialize, Clone)] +pub enum VariableType { + /// A non-special variable + Default, + /// A variable that represents an array with the size of the array wrapped within + Array(i128), + /// A variable that declares a value with the value as a string wrapped within + Declaration(String), + /// A variable that is variadic + Variadic, + /// A variable that represents a struct + Struct, +} + +/// A representation of a function used by the template data +#[derive(Serialize, Deserialize)] +pub struct Function { + pub return_type: String, + pub name: String, + pub parameters: Vec, +} diff --git a/compiler/plc_header_generator/src/header_generator/template_helper/template_helper_c.rs b/compiler/plc_header_generator/src/header_generator/template_helper/template_helper_c.rs new file mode 100644 index 0000000000..ef3e7ef01f --- /dev/null +++ b/compiler/plc_header_generator/src/header_generator/template_helper/template_helper_c.rs @@ -0,0 +1,19 @@ +use crate::header_generator::{ + header_generator_c::GeneratedHeaderForC, + template_helper::{Template, TemplateData, TemplateHelper, TemplateType}, +}; + +impl TemplateHelper for GeneratedHeaderForC { + fn get_template_data(&self) -> &TemplateData { + &self.template_data + } + + fn get_template(&self, template_type: TemplateType) -> Template { + match template_type { + TemplateType::Header => Template { + content: include_str!("templates/c/header_template.h").to_string(), + name: String::from("header_template.h"), + }, + } + } +} diff --git a/compiler/plc_header_generator/src/header_generator/template_helper/templates/c/header_template.h b/compiler/plc_header_generator/src/header_generator/template_helper/templates/c/header_template.h new file mode 100644 index 0000000000..336f430941 --- /dev/null +++ b/compiler/plc_header_generator/src/header_generator/template_helper/templates/c/header_template.h @@ -0,0 +1,82 @@ +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef {{ file_name_caps }} +#define {{ file_name_caps }} + +#include +#include +#include + +#include +{% raw %} +{% endraw %} + +{#- Aliases -#} +{% for alias in user_defined_types.aliases -%} +typedef {{ format_variable_for_definition(variable=alias) }}; +{% raw %} +{% endraw %} +{%- endfor %} + +{#- Enums -#} +{% for enum in user_defined_types.enums -%} +typedef enum e{{ enum.name }} { + {% for variable in enum.variables -%} + {{ format_variable_for_enum_definition(variable=variable) }} + {%- if loop.last == false -%} + {% raw %}, + {% endraw %} + {%- endif -%} + {% endfor -%} +{% raw %} +}{% endraw %} {{ enum.name }}; +{% raw %} +{% endraw %} +{%- endfor %} + +{#- Structs -#} +{% for struct in user_defined_types.structs -%} +typedef struct { + {% for variable in struct.variables -%} + {{ format_variable_for_definition(variable=variable) }} + {%- if loop.last == false -%} + {% raw %}; + {% endraw %} + {%- endif -%} + {%- if loop.last == true -%} + {% raw %};{% endraw %} + {%- endif -%} + {% endfor -%} +{% raw %} +}{% endraw %} {{ struct.name }}; +{% raw %} +{% endraw %} +{%- endfor %} + +{#- Global Variables -#} +{% for global_variable in global_variables -%} +extern {{ format_variable_for_definition(variable=global_variable) }}; +{% raw %}{% endraw %} +{%- if loop.last == true -%} +{% raw %} +{% endraw %} +{%- endif -%} +{%- endfor %} + +{#- Functions -#} +{% for function in functions -%} +{{ function.return_type }} {{ function.name }}( + {%- for parameter in function.parameters -%} + {{- format_variable_for_parameter(variable=parameter) -}} + {%- if loop.last == false -%} + {% raw %}, {% endraw %} + {%- endif -%} + {%- endfor -%}); +{% raw %} +{% endraw %} +{%- endfor -%} + +#endif /* !{{ file_name_caps }} */ diff --git a/compiler/plc_header_generator/src/header_generator/type_helper.rs b/compiler/plc_header_generator/src/header_generator/type_helper.rs new file mode 100644 index 0000000000..1531a2ea76 --- /dev/null +++ b/compiler/plc_header_generator/src/header_generator/type_helper.rs @@ -0,0 +1,65 @@ +use crate::header_generator::ExtendedTypeName; +use plc::typesystem::DataType; + +mod type_helper_c; + +pub struct TypeInformation { + pub name: String, + pub attribute: TypeAttribute, +} + +impl Default for TypeInformation { + fn default() -> Self { + Self::new() + } +} + +pub enum TypeAttribute { + /// This type is an unremarkable type + Default, + UserGenerated, + Variadic, +} + +impl TypeInformation { + pub const fn new() -> Self { + TypeInformation { name: String::new(), attribute: TypeAttribute::Default } + } + + pub fn get_type_name(&self) -> String { + self.name.clone() + } +} + +pub trait TypeHelper { + /// Given an extended type name and all of the defined builtin types, this will determine the type name for this type. + /// + /// --- + /// + /// This must return a [TypeInformation] object, that contains the type name in the language this is implemented for and + /// some additional information about the type (whether it is UserGenerated, Variadic or Default) + fn get_type_name_for_type( + &self, + extended_type_name: &ExtendedTypeName, + builtin_types: &[DataType], + ) -> TypeInformation; + + /// Given a boolean indicating whether or not this is a wide string, this will determine the type name for this string type. + /// + /// --- + /// + /// This must return a [String] that specifies the type name in the language that this is implemented for. + fn get_type_name_for_string(&self, is_wide: &bool) -> String; +} + +fn determine_type_attribute(is_variadic: bool, is_user_generated: bool) -> TypeAttribute { + if is_variadic { + return TypeAttribute::Variadic; + } + + if is_user_generated { + return TypeAttribute::UserGenerated; + } + + TypeAttribute::Default +} diff --git a/compiler/plc_header_generator/src/header_generator/type_helper/type_helper_c.rs b/compiler/plc_header_generator/src/header_generator/type_helper/type_helper_c.rs new file mode 100644 index 0000000000..8f2201a4e1 --- /dev/null +++ b/compiler/plc_header_generator/src/header_generator/type_helper/type_helper_c.rs @@ -0,0 +1,129 @@ +use crate::header_generator::{ + header_generator_c::GeneratedHeaderForC, + type_helper::{determine_type_attribute, TypeHelper, TypeInformation}, + ExtendedTypeName, +}; +use plc::typesystem::{DataType, DataTypeInformation, StringEncoding, BOOL_TYPE, REAL_SIZE}; +use plc_ast::ast::TypeNature; + +impl TypeHelper for GeneratedHeaderForC { + fn get_type_name_for_type( + &self, + extended_type_name: &ExtendedTypeName, + builtin_types: &[DataType], + ) -> TypeInformation { + if extended_type_name.type_name.is_empty() { + return TypeInformation { + name: String::from(C_VOID), + attribute: determine_type_attribute(extended_type_name.is_variadic, false), + }; + } + + let builtin_type = + builtin_types.iter().find(|builtin_type| builtin_type.name == extended_type_name.type_name); + + if builtin_type.is_none() { + // This is a user-generated type + return TypeInformation { + name: extended_type_name.type_name.to_string(), + attribute: determine_type_attribute(extended_type_name.is_variadic, true), + }; + } + + let builtin_type = builtin_type.unwrap(); + match &builtin_type.information { + DataTypeInformation::Integer { signed, size, .. } => { + // Booleans have their own type + if extended_type_name.type_name == BOOL_TYPE { + return TypeInformation { + name: String::from(C_BOOL), + attribute: determine_type_attribute(extended_type_name.is_variadic, false), + }; + } + + // Dates have their own type + if builtin_type.nature == TypeNature::Date || builtin_type.nature == TypeNature::Duration { + return TypeInformation { + name: String::from(C_TIME), + attribute: determine_type_attribute(extended_type_name.is_variadic, false), + }; + } + + let signed_operator = if *signed { "" } else { "u" }; + let constructed_type_name = format!("{signed_operator}int{size}_t"); + + TypeInformation { + name: constructed_type_name, + attribute: determine_type_attribute(extended_type_name.is_variadic, false), + } + } + DataTypeInformation::Float { size, .. } => { + if *size == REAL_SIZE { + TypeInformation { + name: String::from(C_FLOAT), + attribute: determine_type_attribute(extended_type_name.is_variadic, false), + } + } else { + TypeInformation { + name: String::from(C_DOUBLE), + attribute: determine_type_attribute(extended_type_name.is_variadic, false), + } + } + } + DataTypeInformation::Alias { referenced_type, .. } => { + let referenced_data_type_info = + ExtendedTypeName { type_name: referenced_type.to_string(), is_variadic: false }; + + self.get_type_name_for_type(&referenced_data_type_info, builtin_types) + } + DataTypeInformation::String { encoding, .. } => match encoding { + StringEncoding::Utf8 => TypeInformation { + name: self.get_type_name_for_string(&false), + attribute: determine_type_attribute(extended_type_name.is_variadic, false), + }, + StringEncoding::Utf16 => TypeInformation { + name: self.get_type_name_for_string(&true), + attribute: determine_type_attribute(extended_type_name.is_variadic, false), + }, + }, + _ => { + log::debug!("{} this type is not yet supported!", extended_type_name.type_name); + TypeInformation::new() + } + } + } + + fn get_type_name_for_string(&self, is_wide: &bool) -> String { + if *is_wide { + return String::from(C_INT16); + } + + String::from(C_CHAR) + } +} + +// ------------------- // +// -- "C" Constants -- // + +/// The constant value for the "c" type: float +const C_FLOAT: &str = "float_t"; + +/// The constant value for the "c" type: double +const C_DOUBLE: &str = "double_t"; + +/// The constant value for the "c" type: time +const C_TIME: &str = "time_t"; + +/// The constant value for the "c" type: bool +const C_BOOL: &str = "bool"; + +/// The constant value for the "c" type: void +const C_VOID: &str = "void"; + +/// The constant value for the "c" type: int16 +const C_INT16: &str = "int16_t"; + +/// The constant value for the "c" type: char +const C_CHAR: &str = "char"; + +// ------------------- // diff --git a/compiler/plc_header_generator/src/lib.rs b/compiler/plc_header_generator/src/lib.rs new file mode 100644 index 0000000000..45c5e2dbed --- /dev/null +++ b/compiler/plc_header_generator/src/lib.rs @@ -0,0 +1,40 @@ +use clap::ArgEnum; +use std::path::PathBuf; + +pub mod header_generator; + +#[cfg(test)] +mod tests; + +#[derive(PartialEq, Eq, Debug, Clone, Copy, ArgEnum, Default)] +pub enum GenerateLanguage { + #[default] + C, + Rust, +} + +#[derive(Debug)] +pub struct GenerateHeaderOptions { + /// Whether or not to include generated code stubs for the library. + pub include_stubs: bool, + + /// The language used to generate the header file. + pub language: GenerateLanguage, + + /// The output folder where generated headers and stubs will be placed. Will default by convention. + pub output_path: PathBuf, + + /// The prefix for the generated header file(s). Will default to the project name if not supplied. + pub prefix: String, +} + +impl Default for GenerateHeaderOptions { + fn default() -> Self { + GenerateHeaderOptions { + include_stubs: false, + language: GenerateLanguage::C, + output_path: PathBuf::from(String::new()), + prefix: String::new(), + } + } +} diff --git a/compiler/plc_header_generator/src/tests.rs b/compiler/plc_header_generator/src/tests.rs new file mode 100644 index 0000000000..5945576d51 --- /dev/null +++ b/compiler/plc_header_generator/src/tests.rs @@ -0,0 +1 @@ +mod header_generator; diff --git a/compiler/plc_header_generator/src/tests/header_generator.rs b/compiler/plc_header_generator/src/tests/header_generator.rs new file mode 100644 index 0000000000..0da19744e5 --- /dev/null +++ b/compiler/plc_header_generator/src/tests/header_generator.rs @@ -0,0 +1,251 @@ +use std::path::{Path, PathBuf}; + +use insta::{assert_snapshot, internals::SnapshotContents, Snapshot}; +use plc_ast::ast::CompilationUnit; + +use crate::{ + header_generator::{get_generated_header, GeneratedHeader}, + GenerateHeaderOptions, GenerateLanguage, +}; + +// ----------------- // +// -- Test Case 1 -- // +// ----------------- // + +#[test] +fn case_1_global_primitives_generated_header_file() { + let generated_headers = get_all_generated_header_contents("case_1_global_primitives_compilation_units"); + + // This test case should only produce one header file + assert!(generated_headers.len() == 1); + + // Ensure the path has been configured correctly + assert!(generated_headers[0].get_path() == "global_primitives.h"); + + assert_snapshot!(&generated_headers[0].get_contents()); +} + +// ----------------- // +// -- Test Case 2 -- // +// ----------------- // + +#[test] +fn case_2_global_complex_types_generated_header_file() { + let generated_headers = + get_all_generated_header_contents("case_2_global_complex_types_compilation_units"); + + // This test case should only produce one header file + assert!(generated_headers.len() == 1); + + // Ensure the path has been configured correctly + assert!(generated_headers[0].get_path() == "global_complex_types.h"); + + assert_snapshot!(&generated_headers[0].get_contents()); +} + +// ----------------- // +// -- Test Case 3 -- // +// ----------------- // + +#[test] +fn case_3_enum_types_generated_header_file() { + let generated_headers = get_all_generated_header_contents("case_3_enum_types_compilation_units"); + + // This test case should only produce one header file + assert!(generated_headers.len() == 1); + + // Ensure the path has been configured correctly + assert!(generated_headers[0].get_path() == "enum_types.h"); + + assert_snapshot!(&generated_headers[0].get_contents()); +} + +// ----------------- // +// -- Test Case 4 -- // +// ----------------- // + +#[test] +fn case_4_structs_generated_header_file() { + let generated_headers = get_all_generated_header_contents("case_4_structs_compilation_units"); + + // This test case should only produce one header file + assert!(generated_headers.len() == 1); + + // Ensure the path has been configured correctly + assert!(generated_headers[0].get_path() == "structs.h"); + + assert_snapshot!(&generated_headers[0].get_contents()); +} + +// ----------------- // +// -- Test Case 5 -- // +// ----------------- // + +#[test] +fn case_5_functions_with_primitive_types_generated_header_file() { + let generated_headers = + get_all_generated_header_contents("case_5_functions_with_primitive_types_compilation_units"); + + // This test case should only produce one header file + assert!(generated_headers.len() == 1); + + // Ensure the path has been configured correctly + assert!(generated_headers[0].get_path() == "functions_with_primitive_types.h"); + + assert_snapshot!(&generated_headers[0].get_contents()); +} + +// ----------------- // +// -- Test Case 6 -- // +// ----------------- // + +#[test] +fn case_6_functions_with_complex_types_generated_header_file() { + let generated_headers = + get_all_generated_header_contents("case_6_functions_with_complex_types_compilation_units"); + + // This test case should only produce one header file + assert!(generated_headers.len() == 1); + + // Ensure the path has been configured correctly + assert!(generated_headers[0].get_path() == "functions_with_complex_types.h"); + + assert_snapshot!(&generated_headers[0].get_contents()); +} + +// ----------------- // +// -- Test Case 7 -- // +// ----------------- // + +#[test] +fn case_7_function_blocks_generated_header_file() { + let generated_headers = get_all_generated_header_contents("case_7_function_blocks_compilation_units"); + + // This test case should only produce one header file + assert!(generated_headers.len() == 1); + + // Ensure the path has been configured correctly + assert!(generated_headers[0].get_path() == "function_blocks.h"); + + assert_snapshot!(&generated_headers[0].get_contents()); +} + +// ----------------- // +// -- Test Case 8 -- // +// ----------------- // + +#[test] +fn case_8_function_blocks_with_inheritance_generated_header_file() { + let generated_headers = + get_all_generated_header_contents("case_8_function_blocks_with_inheritance_compilation_units"); + + // This test case should only produce one header file + assert!(generated_headers.len() == 1); + + // Ensure the path has been configured correctly + assert!(generated_headers[0].get_path() == "function_blocks_with_inheritance.h"); + + assert_snapshot!(&generated_headers[0].get_contents()); +} + +// ----------------- // +// -- Test Case 9 -- // +// ----------------- // + +#[test] +fn case_9_programs_generated_header_file() { + let generated_headers = get_all_generated_header_contents("case_9_programs_compilation_units"); + + // This test case should only produce one header file + assert!(generated_headers.len() == 1); + + // Ensure the path has been configured correctly + assert!(generated_headers[0].get_path() == "programs.h"); + + assert_snapshot!(&generated_headers[0].get_contents()); +} + +// ------------------ // +// -- Test Case 10 -- // +// ------------------ // + +#[test] +fn case_10_aliases_generated_header_file() { + let generated_headers = get_all_generated_header_contents("case_10_aliases_compilation_units"); + + // This test case should only produce one header file + assert!(generated_headers.len() == 1); + + // Ensure the path has been configured correctly + assert!(generated_headers[0].get_path() == "aliases.h"); + + assert_snapshot!(&generated_headers[0].get_contents()); +} + +// -------------------------------- // +// -- Re-usable pipeline methods -- // +// -------------------------------- // + +/// Returns the generated headers based on the given snapshot identifier. +/// +/// --- +/// +/// The annotated project that is passed as part of this step is loaded based on the given test name. +/// +/// ### Example: +/// ```rust +/// let generated_headers = get_all_generated_header_contents("case_1_global_primitives_compilation_units"); +/// ``` +/// Will load the snapshot that was generated during the run of the `fn case_1_global_primitives_annotated_content()` test. +/// At present these tests are located in the [plc_driver](file:/workspaces/rusty/compiler/plc_driver/src/tests/header_generator.rs). +fn get_all_generated_header_contents(test_name: &str) -> Vec> { + let snapshot_string = extract_string_item_from_snapshot(test_name); + let compilation_units = serde_json::from_str::>(snapshot_string) + .expect("Failed to deserialize snapshot content into the compilation units!"); + + // Fetch all of the headers + let generate_header_options = GenerateHeaderOptions { + include_stubs: false, + language: GenerateLanguage::C, + output_path: PathBuf::default(), + prefix: String::new(), + }; + + let mut generated_headers: Vec> = Vec::new(); + + for unit in compilation_units { + let generated_header = + get_generated_header(&generate_header_options, &unit).expect("Header generation failed!"); + + if !generated_header.is_empty() { + generated_headers.push(generated_header); + } + } + + generated_headers +} + +// -------------------- // +// -- Helper Methods -- // +// -------------------- // + +/// Extracts the object from the path to the snapshot +fn extract_string_item_from_snapshot(test_name: &str) -> &'static str { + let path = get_full_snapshot_path_to_test_with_test_name(test_name); + let snapshot = Snapshot::from_file(path.as_path()).expect("Could not find the snapshot!"); + + let contents = match snapshot.contents() { + SnapshotContents::Text(text_snapshot_contents) => text_snapshot_contents.to_string(), + _ => String::new(), + }; + + Box::leak(contents.into_boxed_str()) +} + +/// Gets the full snapshot path of the given test for this test instance +fn get_full_snapshot_path_to_test_with_test_name(test_name: &str) -> PathBuf { + // TODO: The pathing should probably be re-evaluated + let path = + format!("../plc_driver/src/tests/snapshots/plc_driver__tests__header_generator__{test_name}.snap"); + Path::new(&path).to_owned() +} diff --git a/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_10_aliases_generated_header_file.snap b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_10_aliases_generated_header_file.snap new file mode 100644 index 0000000000..7006f4d5db --- /dev/null +++ b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_10_aliases_generated_header_file.snap @@ -0,0 +1,29 @@ +--- +source: compiler/plc_header_generator/src/tests/header_generator.rs +expression: "&generated_headers[0].get_contents()" +--- +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef ALIASES +#define ALIASES + +#include +#include +#include + +#include + +typedef char T_String[50]; + +typedef DINT T_DInt; + +typedef INT T_Array[12]; + +typedef BOOL T_Bool; + +void fnThatUsesAliases(T_String* varStringInput, T_DInt varDIntInput, T_Array* varArrayOfIntInput, T_Bool varBoolInput); + +#endif /* !ALIASES */ diff --git a/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_1_global_primitives_generated_header_file.snap b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_1_global_primitives_generated_header_file.snap new file mode 100644 index 0000000000..195ed4d562 --- /dev/null +++ b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_1_global_primitives_generated_header_file.snap @@ -0,0 +1,33 @@ +--- +source: compiler/plc_header_generator/src/tests/header_generator.rs +expression: "&generated_headers[0].get_contents()" +--- +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef GLOBAL_PRIMITIVES +#define GLOBAL_PRIMITIVES + +#include +#include +#include + +#include + +extern bool gVarBool; +extern int8_t gVarSInt; +extern int16_t gVarInt; +extern int32_t gVarDInt; +extern int64_t gVarLInt; +extern uint8_t gVarByte; +extern uint16_t gVarWord; +extern uint32_t gVarDWord; +extern uint64_t gVarLWord; +extern float_t gVarReal; +extern double_t gVarLReal; +extern time_t gVarDate; +extern time_t gVarDateAndTime; + +#endif /* !GLOBAL_PRIMITIVES */ diff --git a/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_2_global_complex_types_generated_header_file.snap b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_2_global_complex_types_generated_header_file.snap new file mode 100644 index 0000000000..adacc49fb5 --- /dev/null +++ b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_2_global_complex_types_generated_header_file.snap @@ -0,0 +1,28 @@ +--- +source: compiler/plc_header_generator/src/tests/header_generator.rs +expression: "&generated_headers[0].get_contents()" +--- +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef GLOBAL_COMPLEX_TYPES +#define GLOBAL_COMPLEX_TYPES + +#include +#include +#include + +#include + +extern char gVarString[255]; +extern int16_t gVarWString[6000]; +extern int16_t gVarIntArray[12]; +extern int16_t* gVarRefToInt; +extern int16_t* gVarPointerToInt; +extern time_t* gVarRefToDate; +extern time_t* gVarPointerToDate; +extern int16_t gVarIntWithRange; + +#endif /* !GLOBAL_COMPLEX_TYPES */ diff --git a/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_3_enum_types_generated_header_file.snap b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_3_enum_types_generated_header_file.snap new file mode 100644 index 0000000000..520dcea860 --- /dev/null +++ b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_3_enum_types_generated_header_file.snap @@ -0,0 +1,31 @@ +--- +source: compiler/plc_header_generator/src/tests/header_generator.rs +expression: "&generated_headers[0].get_contents()" +--- +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef ENUM_TYPES +#define ENUM_TYPES + +#include +#include +#include + +#include + +typedef enum eSimpleEnumType { + red = 0, + green, + blue +} SimpleEnumType; + +typedef enum eComplexEnumType { + orange = 10, + yellow = 20, + purple = 30 +} ComplexEnumType; + +#endif /* !ENUM_TYPES */ diff --git a/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_4_structs_generated_header_file.snap b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_4_structs_generated_header_file.snap new file mode 100644 index 0000000000..95b7072b25 --- /dev/null +++ b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_4_structs_generated_header_file.snap @@ -0,0 +1,41 @@ +--- +source: compiler/plc_header_generator/src/tests/header_generator.rs +expression: "&generated_headers[0].get_contents()" +--- +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef STRUCTS +#define STRUCTS + +#include +#include +#include + +#include + +typedef enum eComplexEnumType { + orange = 10, + yellow = 20, + purple = 30 +} ComplexEnumType; + +typedef struct { + uint8_t Field1; + int16_t Field2; + int32_t Field3; +} StructWithPrimitiveTypes; + +typedef struct { + uint8_t byteField; + int16_t intField; + int32_t dIntField; + char stringField[255]; + int16_t wStringField[6000]; + ComplexEnumType complexEnumTypeField; + int16_t intArrayField[10]; +} StructWithComplexTypes; + +#endif /* !STRUCTS */ diff --git a/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_5_functions_with_primitive_types_generated_header_file.snap b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_5_functions_with_primitive_types_generated_header_file.snap new file mode 100644 index 0000000000..79c07a5c80 --- /dev/null +++ b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_5_functions_with_primitive_types_generated_header_file.snap @@ -0,0 +1,25 @@ +--- +source: compiler/plc_header_generator/src/tests/header_generator.rs +expression: "&generated_headers[0].get_contents()" +--- +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef FUNCTIONS_WITH_PRIMITIVE_TYPES +#define FUNCTIONS_WITH_PRIMITIVE_TYPES + +#include +#include +#include + +#include + +void fnThatIsVoid(int16_t varIntInput); + +int16_t fnThatReturnsInt(float_t varRealInputToFunc, int16_t varIntInputToFunc, time_t varDateAndTimeInputToFunc, float_t* varRealInOutFunc, int16_t* varIntOutputFunc); + +time_t fnThatReturnsTimeOfDay(time_t varDateTimeInput); + +#endif /* !FUNCTIONS_WITH_PRIMITIVE_TYPES */ diff --git a/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_6_functions_with_complex_types_generated_header_file.snap b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_6_functions_with_complex_types_generated_header_file.snap new file mode 100644 index 0000000000..8e8605270e --- /dev/null +++ b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_6_functions_with_complex_types_generated_header_file.snap @@ -0,0 +1,55 @@ +--- +source: compiler/plc_header_generator/src/tests/header_generator.rs +expression: "&generated_headers[0].get_contents()" +--- +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef FUNCTIONS_WITH_COMPLEX_TYPES +#define FUNCTIONS_WITH_COMPLEX_TYPES + +#include +#include +#include + +#include + +typedef enum eComplexEnumType { + orange = 10, + yellow = 20, + purple = 30 +} ComplexEnumType; + +typedef struct { + uint8_t Field1; + int16_t Field2; + int32_t Field3; +} StructWithPrimitiveTypes; + +typedef struct { + uint8_t byteField; + int16_t intField; + int32_t dIntField; + char stringField[255]; + int16_t wStringField[6000]; + ComplexEnumType complexEnumTypeField; + int16_t intArrayField[10]; +} StructWithComplexTypes; + +void fnThatUsesStructWithPrimitiveTypes(StructWithPrimitiveTypes* fnThatUsesStructWithPrimitiveTypes, StructWithPrimitiveTypes* varStruct); + +void fnThatUsesStructWithComplexTypes(StructWithComplexTypes* fnThatUsesStructWithComplexTypes, StructWithComplexTypes* varStruct, ComplexEnumType varEnum, char* varString, int16_t* varIntArray); + +void fnThatUsesPrimitiveTypesAndReferences(int16_t varInt, int16_t* varRefToInt, int16_t* varPointerToInt, time_t* varRefToDate, time_t* varPointerToDate); + +void fnThatHasIntWithRange(int16_t varIntWithRange); + +void fnThatHasVariadicIntInput(int16_t varIntInput, ...); + +void fnThatHasVariadicStringInput(int16_t varIntInput, ...); + +void fnThatHasVariadicComplexTypeInput(int16_t varIntInput, ...); + +#endif /* !FUNCTIONS_WITH_COMPLEX_TYPES */ diff --git a/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_7_function_blocks_generated_header_file.snap b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_7_function_blocks_generated_header_file.snap new file mode 100644 index 0000000000..457260d005 --- /dev/null +++ b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_7_function_blocks_generated_header_file.snap @@ -0,0 +1,32 @@ +--- +source: compiler/plc_header_generator/src/tests/header_generator.rs +expression: "&generated_headers[0].get_contents()" +--- +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef FUNCTION_BLOCKS +#define FUNCTION_BLOCKS + +#include +#include +#include + +#include + +typedef struct { + uint64_t* __vtable; + int16_t varInt; + int16_t* outVarInt; + int16_t* inOutVarInt; +} fbThatHasSimpleTypes_type; + +extern fbThatHasSimpleTypes_type __fbThatHasSimpleTypes__init = { 0 }; + +void fbThatHasSimpleTypes(fbThatHasSimpleTypes_type* self); + +void fbThatHasSimpleTypes__FB_INIT(fbThatHasSimpleTypes_type* self); + +#endif /* !FUNCTION_BLOCKS */ diff --git a/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_8_function_blocks_with_inheritance_generated_header_file.snap b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_8_function_blocks_with_inheritance_generated_header_file.snap new file mode 100644 index 0000000000..b0616707a4 --- /dev/null +++ b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_8_function_blocks_with_inheritance_generated_header_file.snap @@ -0,0 +1,52 @@ +--- +source: compiler/plc_header_generator/src/tests/header_generator.rs +expression: "&generated_headers[0].get_contents()" +--- +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef FUNCTION_BLOCKS_WITH_INHERITANCE +#define FUNCTION_BLOCKS_WITH_INHERITANCE + +#include +#include +#include + +#include + +typedef struct { + uint64_t* __vtable; + int16_t varGreatGrandParentInt; +} fbGreatGrandParent_type; + +typedef struct { + fbGreatGrandParent_type __fbGreatGrandParent; + int16_t varGrandParentInt; +} fbGrandParent_type; + +typedef struct { + fbGrandParent_type __fbGrandParent; + int16_t varParentInt; +} fbParent_type; + +typedef struct { + fbParent_type __fbParent; + int16_t varChildInt; +} fbChild_type; + +extern fbGreatGrandParent_type __fbGreatGrandParent__init = { 0 }; +extern fbGrandParent_type __fbGrandParent__init = { 0 }; +extern fbParent_type __fbParent__init = { 0 }; +extern fbChild_type __fbChild__init = { 0 }; + +void fbGreatGrandParent(fbGreatGrandParent_type* self); + +void fbGrandParent(fbGrandParent_type* self); + +void fbParent(fbParent_type* self); + +void fbChild(fbChild_type* self); + +#endif /* !FUNCTION_BLOCKS_WITH_INHERITANCE */ diff --git a/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_9_programs_generated_header_file.snap b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_9_programs_generated_header_file.snap new file mode 100644 index 0000000000..8bb3891d29 --- /dev/null +++ b/compiler/plc_header_generator/src/tests/snapshots/plc_header_generator__tests__header_generator__case_9_programs_generated_header_file.snap @@ -0,0 +1,35 @@ +--- +source: compiler/plc_header_generator/src/tests/header_generator.rs +expression: "&generated_headers[0].get_contents()" +--- +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef PROGRAMS +#define PROGRAMS + +#include +#include +#include + +#include + +typedef enum eComplexEnumType { + orange = 10, + yellow = 20, + purple = 30 +} ComplexEnumType; + +typedef struct { + ComplexEnumType inOutVar; + ComplexEnumType outVar; +} prog_type; + +extern prog_type prog_instance; +extern prog_type __prog__init = { 0 }; + +void prog(prog_type* self); + +#endif /* !PROGRAMS */ diff --git a/compiler/plc_index/Cargo.toml b/compiler/plc_index/Cargo.toml index a7734a9797..4dea98562d 100644 --- a/compiler/plc_index/Cargo.toml +++ b/compiler/plc_index/Cargo.toml @@ -12,5 +12,6 @@ plc_diagnostics = { path = "../plc_diagnostics" } #plc_project = { path = "../plc_project" } # TODO: This will create a circular dependency rustc-hash.workspace = true annotate-snippets = "0.11.5" - encoding_rs = "0.8" +serde_json.workspace = true +serde.workspace = true diff --git a/compiler/plc_index/src/lib.rs b/compiler/plc_index/src/lib.rs index 1affaa956b..785812c60d 100644 --- a/compiler/plc_index/src/lib.rs +++ b/compiler/plc_index/src/lib.rs @@ -5,6 +5,7 @@ use plc_diagnostics::diagnostics::Diagnostic; use plc_source::source_location::SourceLocation; use plc_source::{SourceCode, SourceContainer}; use rustc_hash::FxHashMap; +use serde::{Deserialize, Serialize}; // TODO: The clone is super expensive here, eventually we should have a inner type wrapped around Arc, e.g. // `struct GlobalContext { inner: Arc }` @@ -15,7 +16,8 @@ use rustc_hash::FxHashMap; // RefCells may or may not make sense here, because maybe we dont want to pass the GlobalContext as a mutable reference? // -> diagnostics: RefCell, (private visibility) // -> index: RefCell, (private visibility; `get_index(&self) -> &mut Index`?) -#[derive(Debug, Default, Clone)] +#[derive(Debug, Default, Clone, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct GlobalContext { /// HashMap containing all read, i.e. parsed, sources where the key represents /// the relative file path and the value some [`SourceCode`] @@ -27,7 +29,7 @@ pub struct GlobalContext { } // XXX: Temporary -#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)] +#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] pub enum ErrorFormat { #[default] Rich, diff --git a/compiler/plc_source/Cargo.toml b/compiler/plc_source/Cargo.toml index ee1e17f156..a26ca36a48 100644 --- a/compiler/plc_source/Cargo.toml +++ b/compiler/plc_source/Cargo.toml @@ -8,6 +8,8 @@ edition = "2021" [dependencies] encoding_rs.workspace = true encoding_rs_io.workspace = true +serde_json.workspace = true +serde.workspace = true [dev-dependencies] insta = "1.31.0" diff --git a/compiler/plc_source/src/lib.rs b/compiler/plc_source/src/lib.rs index ecbfc012c9..d77bc85e6c 100644 --- a/compiler/plc_source/src/lib.rs +++ b/compiler/plc_source/src/lib.rs @@ -6,6 +6,7 @@ use std::{ use encoding_rs::Encoding; use encoding_rs_io::DecodeReaderBytesBuilder; +use serde::{Deserialize, Serialize}; pub mod source_location; /// Represents the type of source a SourceContainer holds @@ -56,7 +57,7 @@ pub trait SourceContainer: Sync + Send { } /// The SourceCode unit is the smallest unit of compilation that can be passed to the compiler -#[derive(Clone, Debug)] +#[derive(Clone, Debug, Serialize, Deserialize)] pub struct SourceCode { /// the source code to be compiled pub source: String, diff --git a/compiler/plc_source/src/source_location.rs b/compiler/plc_source/src/source_location.rs index 9ef1e44cb7..df601852a9 100644 --- a/compiler/plc_source/src/source_location.rs +++ b/compiler/plc_source/src/source_location.rs @@ -4,6 +4,8 @@ use std::{ path::{Path, PathBuf}, }; +use serde::{Deserialize, Serialize}; + use crate::{SourceCode, SourceContainer}; #[derive(Clone, Default)] @@ -53,7 +55,7 @@ impl SourceLocationFactory { /// The location of a certain element in a text file -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub struct TextLocation { /// Line in the source code where this location points to line: usize, @@ -76,7 +78,7 @@ impl TextLocation { } /// Represents the location of a code element in a source code -#[derive(Clone, PartialEq, Eq, Hash)] +#[derive(Clone, PartialEq, Eq, Hash, Serialize, Deserialize)] pub enum CodeSpan { /// The location of a block in a diagram Block { local_id: usize, execution_order: Option, inner_range: Option> }, @@ -196,7 +198,7 @@ impl CodeSpan { } } -#[derive(Copy, Clone, PartialEq, Eq, Hash, Default, Debug)] +#[derive(Copy, Clone, PartialEq, Eq, Hash, Default, Debug, Serialize, Deserialize)] pub enum FileMarker { File(&'static str), #[default] @@ -243,7 +245,8 @@ impl FileMarker { } } -#[derive(Clone, PartialEq, Eq, Hash)] +#[derive(Clone, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct SourceLocation { span: CodeSpan, /// the name of the file if available. if there is no file available diff --git a/examples/test b/examples/test new file mode 100755 index 0000000000..dd8ac1010d Binary files /dev/null and b/examples/test differ diff --git a/examples/test.c b/examples/test.c new file mode 100644 index 0000000000..793bd7d251 --- /dev/null +++ b/examples/test.c @@ -0,0 +1,6 @@ +#include "myFile.h" + + +int main() { + +} diff --git a/src/datalayout.rs b/src/datalayout.rs index cc31715e98..0738b4eed4 100644 --- a/src/datalayout.rs +++ b/src/datalayout.rs @@ -1,6 +1,8 @@ use std::ops::{Add, AddAssign}; -#[derive(Copy, Clone, Debug)] +use serde::{Deserialize, Serialize}; + +#[derive(Copy, Clone, Debug, Serialize, Deserialize)] pub struct DataLayout { pub i1: Bytes, pub i8: Bytes, @@ -35,7 +37,7 @@ impl Default for DataLayout { } /// An representation of a Byte unit, used to represent sizes, and alignments -#[derive(PartialEq, Eq, Copy, Clone, Debug, PartialOrd, Default)] +#[derive(PartialEq, Eq, Copy, Clone, Debug, PartialOrd, Default, Serialize, Deserialize)] pub struct Bytes(u32); impl Add for Bytes { diff --git a/src/index.rs b/src/index.rs index b3b76c8b5c..7cd770d8e0 100644 --- a/src/index.rs +++ b/src/index.rs @@ -12,6 +12,7 @@ use plc_ast::ast::{ use plc_diagnostics::diagnostics::Diagnostic; use plc_source::source_location::SourceLocation; use plc_util::convention::qualified_name; +use serde::{Deserialize, Serialize}; use crate::{ builtins::{self, BuiltIn}, @@ -41,7 +42,8 @@ pub type FxIndexSet = indexmap::IndexSet>; /// A label represents a possible jump point in the source. /// It can be referenced by jump elements in the same unit -#[derive(Debug, PartialEq, Eq, Clone, Hash)] +#[derive(Debug, PartialEq, Eq, Clone, Hash, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct Label { pub id: AstId, pub name: String, @@ -58,7 +60,8 @@ impl From<&AstNode> for Label { } } -#[derive(Debug, PartialEq, Eq, Clone, Hash)] +#[derive(Debug, PartialEq, Eq, Clone, Hash, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct VariableIndexEntry { /// the name of this variable (e.g. 'x' for 'PLC_PRG.x') name: String, @@ -293,7 +296,8 @@ impl VariableIndexEntry { } } -#[derive(Debug, PartialEq, Eq, Clone, Hash)] +#[derive(Debug, PartialEq, Eq, Clone, Hash, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct HardwareBinding { /// Specifies if the binding is an In/Out or Memory binding pub direction: HardwareAccessType, @@ -343,7 +347,7 @@ pub struct MemberInfo<'b> { varargs: Option, } -#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)] pub enum ArgumentType { ByVal(VariableType), ByRef(VariableType), @@ -370,7 +374,7 @@ impl ArgumentType { } } -#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub enum VariableType { Local, // functions have no locals; others: VAR-block Temp, // for functions: VAR & VAR_TEMP; others: VAR_TEMP @@ -405,7 +409,7 @@ impl std::fmt::Display for VariableType { } } -#[derive(Clone, PartialEq, Eq, Debug)] +#[derive(Clone, PartialEq, Eq, Debug, Serialize, Deserialize)] pub enum ImplementationType { Program, Function, @@ -417,7 +421,8 @@ pub enum ImplementationType { ProjectInit, } -#[derive(Clone, Debug, PartialEq, Eq)] +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct ImplementationIndexEntry { pub(crate) call_name: String, pub(crate) type_name: String, @@ -516,7 +521,8 @@ impl ImplementationType { } } -#[derive(Eq, PartialEq, Hash)] +#[derive(Eq, PartialEq, Hash, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct InterfaceIndexEntry { /// The interface identifier, consisting of its name and name-location pub ident: Identifier, @@ -650,7 +656,8 @@ impl From<&Interface> for InterfaceIndexEntry { } } -#[derive(Debug, PartialEq, Clone)] +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub enum PouIndexEntry { Program { name: String, @@ -1146,7 +1153,8 @@ impl PouIndexEntry { /// the TypeIndex carries all types. /// it is extracted into its seaprate struct so it can be /// internally borrowed individually from the other maps -#[derive(Debug)] +#[derive(Debug, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct TypeIndex { /// all types (structs, enums, type, POUs, etc.) types: SymbolMap, @@ -1228,7 +1236,8 @@ impl TypeIndex { /// The global index of the rusty-compiler /// /// The index contains information about all referencable elements. -#[derive(Debug, Default)] +#[derive(Debug, Default, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct Index { /// All global variables global_variables: SymbolMap, diff --git a/src/index/const_expressions.rs b/src/index/const_expressions.rs index 2bbdef7929..54bd17c3fc 100644 --- a/src/index/const_expressions.rs +++ b/src/index/const_expressions.rs @@ -7,13 +7,15 @@ use plc_ast::{ }; use plc_source::source_location::SourceLocation; +use serde::{Deserialize, Serialize}; pub type ConstId = generational_arena::Index; /// wrapper around ConstExpression stored in the arena /// changing expr allows to change the referenced const-expression /// without aquiring a new ID in the arena -#[derive(Debug)] +#[derive(Debug, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] struct ConstWrapper { /// the constant expression expr: ConstExpression, @@ -30,7 +32,8 @@ impl ConstWrapper { /// constant expressions registered here are wrapped behind this enum to indicate /// whether this expression was already (potentially) resolved or not, or if a /// resolving failed. -#[derive(Debug)] +#[derive(Debug, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub enum ConstExpression { Unresolved { statement: AstNode, @@ -93,7 +96,8 @@ impl ConstExpression { /// Initializers which rely on code-execution/allocated memory addresses and are /// therefore not resolvable before the codegen stage -#[derive(Debug, PartialEq, Clone)] +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct InitData { pub initializer: Box>, pub target_type_name: Option, @@ -117,7 +121,8 @@ impl InitData { } } -#[derive(Debug, PartialEq, Clone)] +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub enum UnresolvableKind { /// Indicates that the const expression was not resolvable for any reason not listed in [`UnresolvableKind`]. Misc(String), @@ -150,7 +155,8 @@ impl UnresolvableKind { } } -#[derive(Default, Debug)] +#[derive(Default, Debug, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct ConstExpressions { expressions: Arena, } diff --git a/src/index/symbol.rs b/src/index/symbol.rs index d0de2534ef..947fb90b91 100644 --- a/src/index/symbol.rs +++ b/src/index/symbol.rs @@ -2,14 +2,19 @@ use crate::index::FxIndexMap; use indexmap::Equivalent; +use serde::{Deserialize, Serialize}; use std::hash::Hash; /// A multi-map implementation with a stable order of elements. When iterating /// the keys or the values, the iterator reflects the order of insertion. -#[derive(Debug)] +#[derive(Debug, Serialize, Deserialize)] pub struct SymbolMap { /// internal storage of the SymbolMap that uses an * /// IndexMap of Vectors + #[serde(bound( + serialize = "FxIndexMap>: Serialize", + deserialize = "FxIndexMap>: Deserialize<'de>" + ))] inner_map: FxIndexMap>, } diff --git a/src/resolver.rs b/src/resolver.rs index 6607da6086..7ce852b8c7 100644 --- a/src/resolver.rs +++ b/src/resolver.rs @@ -6,6 +6,7 @@ //! records all resulting types associated with the statement's id. use rustc_hash::{FxHashMap, FxHashSet}; +use serde::{Deserialize, Serialize}; use std::{fmt::Debug, hash::Hash}; use plc_ast::{ @@ -440,7 +441,7 @@ impl TypeAnnotator<'_> { } } -#[derive(Clone, Debug, PartialEq, Default)] +#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)] pub enum AutoDerefType { #[default] Default, @@ -467,7 +468,8 @@ impl From for AutoDerefType { } } -#[derive(Debug, Clone, PartialEq, Default)] +#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub enum StatementAnnotation { /// an expression that resolves to a certain type (e.g. `a + b` --> `INT`) Value { @@ -560,7 +562,7 @@ pub enum StatementAnnotation { type QualifiedName = String; -#[derive(Debug, Hash, Clone, PartialEq)] +#[derive(Debug, Hash, Clone, PartialEq, Serialize, Deserialize)] pub enum MethodDeclarationType { Abstract(QualifiedName), Concrete(QualifiedName), @@ -848,7 +850,7 @@ impl From<&PouIndexEntry> for StatementAnnotation { } } -#[derive(Hash, Eq, PartialEq, Debug, Clone)] +#[derive(Hash, Eq, PartialEq, Debug, Clone, Serialize, Deserialize)] pub enum Dependency { Datatype(String), Call(String), @@ -956,7 +958,8 @@ pub trait AnnotationMap { fn import(&mut self, other: AnnotationMapImpl); } -#[derive(Debug, Default)] +#[derive(Debug, Default, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct AstAnnotations { pub annotation_map: AnnotationMapImpl, bool_id: AstId, @@ -1008,7 +1011,8 @@ impl AstAnnotations { } } -#[derive(Default, Debug)] +#[derive(Default, Debug, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct AnnotationMapImpl { /// maps a statement to the type it resolves to type_map: FxIndexMap, @@ -1113,7 +1117,7 @@ impl AnnotationMap for AnnotationMapImpl { } } -#[derive(Default, Debug)] +#[derive(Default, Debug, Serialize, Deserialize)] pub struct StringLiterals { pub utf08: FxHashSet, pub utf16: FxHashSet, diff --git a/src/resolver/const_evaluator.rs b/src/resolver/const_evaluator.rs index e2d01abb3b..b2bb0fbf20 100644 --- a/src/resolver/const_evaluator.rs +++ b/src/resolver/const_evaluator.rs @@ -8,6 +8,7 @@ use plc_ast::{ literals::{Array, AstLiteral, StringValue}, }; use plc_source::source_location::SourceLocation; +use serde::{Deserialize, Serialize}; use crate::{ index::{ @@ -19,7 +20,8 @@ use crate::{ /// a wrapper for an unresolvable const-expression with the reason /// why it could not be resolved -#[derive(PartialEq, Debug)] +#[derive(PartialEq, Debug, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct UnresolvableConstant { pub id: ConstId, pub kind: Option, diff --git a/src/typesystem.rs b/src/typesystem.rs index da7e6487f6..eb68d3fb6e 100644 --- a/src/typesystem.rs +++ b/src/typesystem.rs @@ -12,6 +12,7 @@ use plc_ast::{ }; use plc_source::source_location::SourceLocation; use rustc_hash::FxHashSet; +use serde::{Deserialize, Serialize}; use crate::{ datalayout::{Bytes, MemoryLocation}, @@ -95,7 +96,8 @@ pub const __VLA_TYPE: &str = "__VLA"; #[cfg(test)] mod tests; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub struct DataType { pub name: String, /// the initial value defined on the TYPE-declaration @@ -295,7 +297,7 @@ impl DataType { } } -#[derive(Debug, Clone, PartialEq, Eq, Hash)] +#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)] pub enum VarArgs { Sized(Option), Unsized(Option), @@ -315,7 +317,7 @@ impl VarArgs { } } -#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] pub enum StringEncoding { Utf8, Utf16, @@ -331,7 +333,7 @@ impl StringEncoding { } /// Enum for ranges and aggregate type sizes. -#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] pub enum TypeSize { LiteralInteger(i64), ConstExpression(ConstId), @@ -370,7 +372,7 @@ impl TypeSize { } /// indicates where this Struct origins from. -#[derive(Debug, Clone, PartialEq, Eq)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub enum StructSource { OriginalDeclaration, Pou(PouType), @@ -386,7 +388,7 @@ impl StructSource { } } -#[derive(Debug, Clone, PartialEq, Eq)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub enum InternalType { VariableLengthArray { inner_type_name: String, ndims: usize }, __VLA, // used for error-reporting only @@ -394,7 +396,8 @@ pub enum InternalType { type TypeId = String; -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(bound(deserialize = "'de: 'static"))] pub enum DataTypeInformation { Struct { name: TypeId, @@ -830,7 +833,7 @@ impl DataTypeInformation { } } -#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] pub struct Dimension { pub start_offset: TypeSize, pub end_offset: TypeSize, diff --git a/tests/integration/data/header_generator/colour_tracker.pli b/tests/integration/data/header_generator/colour_tracker.pli new file mode 100644 index 0000000000..ebf2847511 --- /dev/null +++ b/tests/integration/data/header_generator/colour_tracker.pli @@ -0,0 +1,33 @@ +VAR_GLOBAL + globalCounter: INT; +END_VAR + +TYPE RGB: ( + red, + green, + blue + ); +END_TYPE + +TYPE ColourInfo: + STRUCT + timesPicked : DINT; + primaryColour : RGB; + END_STRUCT +END_TYPE + +FUNCTION PrintStatistics +VAR_INPUT + argumentCount: DINT; + colours: ARRAY [0..2] OF ColourInfo; +END_VAR +END_FUNCTION + +FUNCTION TestPrinter +END_FUNCTION + +FUNCTION PrintColourInfo +VAR_INPUT + colourInfo: ColourInfo; +END_VAR +END_FUNCTION diff --git a/tests/integration/header_generator_tests.rs b/tests/integration/header_generator_tests.rs new file mode 100644 index 0000000000..fd28c1d2dd --- /dev/null +++ b/tests/integration/header_generator_tests.rs @@ -0,0 +1,40 @@ +use std::fs; + +use driver::compile; +use insta::assert_snapshot; + +use crate::get_test_file; + +#[test] +fn test_header_generator_cli() { + let dir = tempfile::tempdir().unwrap(); + + let working_file = get_test_file("header_generator/colour_tracker.pli"); + let test_file_pli = dir.path().join("colour_tracker.pli").to_str().unwrap().to_string(); + fs::copy(&working_file, &test_file_pli) + .unwrap_or_else(|_| panic!("Unable to copy file from '{working_file}' to '{test_file_pli}'")); + + let parameters = &["plc", "--generate-headers", &test_file_pli]; + compile(parameters).unwrap(); + + assert!(dir.path().join("colour_tracker.h").is_file()); + assert_snapshot!(fs::read_to_string(dir.path().join("colour_tracker.h").to_str().unwrap()).unwrap()); +} + +#[test] +fn test_header_generator_output_directory() { + let dir = tempfile::tempdir().unwrap(); + let gen_dir = dir.path().join("code_gen"); + + let working_file = get_test_file("header_generator/colour_tracker.pli"); + let test_file_pli = dir.path().join("colour_tracker.pli").to_str().unwrap().to_string(); + fs::copy(&working_file, &test_file_pli) + .unwrap_or_else(|_| panic!("Unable to copy file from '{working_file}' to '{test_file_pli}'")); + + let parameters = + &["plc", "--header-output", gen_dir.to_str().unwrap(), "--generate-headers", &test_file_pli]; + compile(parameters).unwrap(); + + assert!(gen_dir.join("colour_tracker.h").is_file()); + assert_snapshot!(fs::read_to_string(gen_dir.join("colour_tracker.h").to_str().unwrap()).unwrap()); +} diff --git a/tests/integration/snapshots/tests__integration__header_generator_tests__header_generator_cli.snap b/tests/integration/snapshots/tests__integration__header_generator_tests__header_generator_cli.snap new file mode 100644 index 0000000000..fe595493d6 --- /dev/null +++ b/tests/integration/snapshots/tests__integration__header_generator_tests__header_generator_cli.snap @@ -0,0 +1,38 @@ +--- +source: tests/integration/header_generator_tests.rs +expression: "fs::read_to_string(dir.path().join(\"colour_tracker.h\").to_str().unwrap()).unwrap()" +--- +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef COLOUR_TRACKER +#define COLOUR_TRACKER + +#include +#include +#include + +#include + +typedef enum eRGB { + red = 0, + green, + blue +} RGB; + +typedef struct { + int32_t timesPicked; + RGB primaryColour; +} ColourInfo; + +extern int16_t globalCounter; + +void PrintStatistics(int32_t argumentCount, ColourInfo* colours); + +void TestPrinter(); + +void PrintColourInfo(ColourInfo* colourInfo); + +#endif /* !COLOUR_TRACKER */ diff --git a/tests/integration/snapshots/tests__integration__header_generator_tests__header_generator_output_directory.snap b/tests/integration/snapshots/tests__integration__header_generator_tests__header_generator_output_directory.snap new file mode 100644 index 0000000000..9f00cb9bad --- /dev/null +++ b/tests/integration/snapshots/tests__integration__header_generator_tests__header_generator_output_directory.snap @@ -0,0 +1,38 @@ +--- +source: tests/integration/header_generator_tests.rs +expression: "fs::read_to_string(gen_dir.join(\"colour_tracker.h\").to_str().unwrap()).unwrap()" +--- +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef COLOUR_TRACKER +#define COLOUR_TRACKER + +#include +#include +#include + +#include + +typedef enum eRGB { + red = 0, + green, + blue +} RGB; + +typedef struct { + int32_t timesPicked; + RGB primaryColour; +} ColourInfo; + +extern int16_t globalCounter; + +void PrintStatistics(int32_t argumentCount, ColourInfo* colours); + +void TestPrinter(); + +void PrintColourInfo(ColourInfo* colourInfo); + +#endif /* !COLOUR_TRACKER */ diff --git a/tests/lit/multi/header_generator/colour_tracker/colour_tracker.c b/tests/lit/multi/header_generator/colour_tracker/colour_tracker.c new file mode 100644 index 0000000000..a47e7e20b0 --- /dev/null +++ b/tests/lit/multi/header_generator/colour_tracker/colour_tracker.c @@ -0,0 +1,28 @@ +#include "colour_tracker.h" + +int16_t globalCounter = 0; + +void PrintStatistics(int32_t argumentCount, ColourInfo* colours) { + for (int i = 0; i < argumentCount; i++) { + ColourInfo colourInfo = colours[i]; + + PrintColourInfo(&colourInfo); + + globalCounter++; + } + + printf("Global Count: %d\n", globalCounter); +} + +void TestPrinter() { + printf("Testing...\n"); +} + +void PrintColourInfo(ColourInfo* colourInfo) { + switch(colourInfo->primaryColour) { + case red: printf("Red, Times Picked: %d\n", colourInfo->timesPicked); break; + case green: printf("Green, Times Picked: %d\n", colourInfo->timesPicked); break; + case blue: printf("Blue, Times Picked: %d\n", colourInfo->timesPicked); break; + default: break; + } +} diff --git a/tests/lit/multi/header_generator/colour_tracker/colour_tracker.h b/tests/lit/multi/header_generator/colour_tracker/colour_tracker.h new file mode 100644 index 0000000000..a67a8893d6 --- /dev/null +++ b/tests/lit/multi/header_generator/colour_tracker/colour_tracker.h @@ -0,0 +1,34 @@ +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef COLOUR_TRACKER +#define COLOUR_TRACKER + +#include +#include +#include + +#include + +typedef enum eRGB { + red = 0, + green, + blue +} RGB; + +typedef struct { + int32_t timesPicked; + RGB primaryColour; +} ColourInfo; + +extern int16_t globalCounter; + +void PrintStatistics(int32_t argumentCount, ColourInfo* colours); + +void TestPrinter(); + +void PrintColourInfo(ColourInfo* colourInfo); + +#endif /* !COLOUR_TRACKER */ diff --git a/tests/lit/multi/header_generator/colour_tracker/colour_tracker.pli b/tests/lit/multi/header_generator/colour_tracker/colour_tracker.pli new file mode 100644 index 0000000000..ebf2847511 --- /dev/null +++ b/tests/lit/multi/header_generator/colour_tracker/colour_tracker.pli @@ -0,0 +1,33 @@ +VAR_GLOBAL + globalCounter: INT; +END_VAR + +TYPE RGB: ( + red, + green, + blue + ); +END_TYPE + +TYPE ColourInfo: + STRUCT + timesPicked : DINT; + primaryColour : RGB; + END_STRUCT +END_TYPE + +FUNCTION PrintStatistics +VAR_INPUT + argumentCount: DINT; + colours: ARRAY [0..2] OF ColourInfo; +END_VAR +END_FUNCTION + +FUNCTION TestPrinter +END_FUNCTION + +FUNCTION PrintColourInfo +VAR_INPUT + colourInfo: ColourInfo; +END_VAR +END_FUNCTION diff --git a/tests/lit/multi/header_generator/colour_tracker/colour_tracker.test b/tests/lit/multi/header_generator/colour_tracker/colour_tracker.test new file mode 100644 index 0000000000..2e044585dd --- /dev/null +++ b/tests/lit/multi/header_generator/colour_tracker/colour_tracker.test @@ -0,0 +1,6 @@ +RUN: %COMPILE %S/colour_tracker_prog.st && %RUN | %CHECK %s +CHECK: Testing... +CHECK: Red, Times Picked: 5 +CHECK: Green, Times Picked: 4 +CHECK: Blue, Times Picked: 6 +CHECK: Global Count: 3 diff --git a/tests/lit/multi/header_generator/colour_tracker/colour_tracker_prog.st b/tests/lit/multi/header_generator/colour_tracker/colour_tracker_prog.st new file mode 100644 index 0000000000..bb653f238d --- /dev/null +++ b/tests/lit/multi/header_generator/colour_tracker/colour_tracker_prog.st @@ -0,0 +1,14 @@ +FUNCTION main +VAR + ciArray: ARRAY[0..2] OF ColourInfo := [ + (timesPicked := 5, primaryColour := red), + (timesPicked := 4, primaryColour := green), + (timesPicked := 6, primaryColour := blue) + ]; +END_VAR + // Test Printer + TestPrinter(); + + // Print output + PrintStatistics(3, ciArray); +END_FUNCTION diff --git a/tests/lit/multi/header_generator/colour_tracker/dependencies.plc.h b/tests/lit/multi/header_generator/colour_tracker/dependencies.plc.h new file mode 100644 index 0000000000..9a79500886 --- /dev/null +++ b/tests/lit/multi/header_generator/colour_tracker/dependencies.plc.h @@ -0,0 +1,8 @@ +#ifndef DEPENDENCIES_PLC +#define DEPENDENCIES_PLC + +/* + * Add any library dependencies that can not be implicitly detected here + */ + +#endif /* !DEPENDENCIES_PLC */ diff --git a/tests/lit/multi/header_generator/colour_tracker/lit.local.cfg b/tests/lit/multi/header_generator/colour_tracker/lit.local.cfg new file mode 100644 index 0000000000..eb7464b25d --- /dev/null +++ b/tests/lit/multi/header_generator/colour_tracker/lit.local.cfg @@ -0,0 +1,59 @@ +# Override the compile command to include the custom library +import os.path +import subprocess + +# Access the same parameters that the main configuration uses +stdlibLocation = lit_config.params["LIB"] +compilerLocation = lit_config.params["COMPILER"] + +# Derive rusty root directory using relative paths +test_dir = os.path.dirname(__file__) +source_path = os.path.abspath(test_dir) +rustyRootDirectory = os.path.abspath(os.path.join(test_dir, "..", "..", "..", "..")) + +# Use tmp directory for compiled library +tmp_lib_path = "/tmp" +tmp_src_name = "colour_tracker" +tmp_lib_file = f"{tmp_lib_path}/lib{tmp_src_name}.so" + +# Generate header files +try: + lit_config.note(f"Generating header file...") + generate_command = f"{compilerLocation} generate {source_path}/plc.json headers" + result = subprocess.run(generate_command, shell=True, check=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + lit_config.note(f"Successfully generated header file...") +except subprocess.CalledProcessError as e: + lit_config.error(f"Failed to generate header file: {e.stderr.decode()}") + raise + +# Compile {tmp_src_name}.c to lib_{tmp_src_name}.so in the tmp directory +try: + lit_config.note(f"Compiling {tmp_src_name}.c into {tmp_lib_file}...") + gcc_cmd = f"gcc -g -shared -fPIC -o {tmp_lib_file} -I{source_path} {source_path}/{tmp_src_name}.c" + lit_config.note(f"Running: {gcc_cmd}") + result = subprocess.run(gcc_cmd, shell=True, check=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + lit_config.note(f"Successfully compiled {tmp_lib_file}") +except subprocess.CalledProcessError as e: + lit_config.error(f"Failed to compile {tmp_src_name}.c: {e.stderr.decode()}") + raise + +# Build on the existing compile command but add our custom library +compile = f'{compilerLocation} -g' +compile = f'{compile} -o /tmp/%basename_t.out' +compile = f'{compile} -liec61131std -L{stdlibLocation}/lib -i "{stdlibLocation}/include/*.st"' +compile = f'{compile} -i "{rustyRootDirectory}/tests/lit/util/*.pli"' +compile = f'{compile} -L{tmp_lib_path} -l{tmp_src_name} -i {source_path}/{tmp_src_name}.pli' +compile = f'{compile} --linker=cc' + +# Log the compile command +lit_config.note(f"Compile command: {compile}") + +# Update the run command to include the custom library path +run_cmd = f'LD_LIBRARY_PATH="{stdlibLocation}/lib:{tmp_lib_path}" /tmp/%basename_t.out' + +# Override the substitutions +config.substitutions = [s for s in config.substitutions if s[0] not in ['%COMPILE', '%RUN']] +config.substitutions.append(('%COMPILE', f'{compile}')) +config.substitutions.append(('%RUN', f'{run_cmd}')) diff --git a/tests/lit/multi/header_generator/colour_tracker/plc.json b/tests/lit/multi/header_generator/colour_tracker/plc.json new file mode 100644 index 0000000000..970cfb6211 --- /dev/null +++ b/tests/lit/multi/header_generator/colour_tracker/plc.json @@ -0,0 +1,11 @@ +{ + "name" : "HeaderGeneratorProject", + "files" : [ + "colour_tracker.pli" + ], + "compile_type" : "Shared", + "output" : "prog.so", + "libraries" : [ + ] +} + diff --git a/tests/lit/multi/header_generator/message_printer/dependencies.plc.h b/tests/lit/multi/header_generator/message_printer/dependencies.plc.h new file mode 100644 index 0000000000..9a79500886 --- /dev/null +++ b/tests/lit/multi/header_generator/message_printer/dependencies.plc.h @@ -0,0 +1,8 @@ +#ifndef DEPENDENCIES_PLC +#define DEPENDENCIES_PLC + +/* + * Add any library dependencies that can not be implicitly detected here + */ + +#endif /* !DEPENDENCIES_PLC */ diff --git a/tests/lit/multi/header_generator/message_printer/lit.local.cfg b/tests/lit/multi/header_generator/message_printer/lit.local.cfg new file mode 100644 index 0000000000..cfcea84506 --- /dev/null +++ b/tests/lit/multi/header_generator/message_printer/lit.local.cfg @@ -0,0 +1,59 @@ +# Override the compile command to include the custom library +import os.path +import subprocess + +# Access the same parameters that the main configuration uses +stdlibLocation = lit_config.params["LIB"] +compilerLocation = lit_config.params["COMPILER"] + +# Derive rusty root directory using relative paths +test_dir = os.path.dirname(__file__) +source_path = os.path.abspath(test_dir) +rustyRootDirectory = os.path.abspath(os.path.join(test_dir, "..", "..", "..", "..")) + +# Use tmp directory for compiled library +tmp_lib_path = "/tmp" +tmp_src_name = "message_printer" +tmp_lib_file = f"{tmp_lib_path}/lib{tmp_src_name}.so" + +# Generate header files +try: + lit_config.note(f"Generating header file...") + generate_command = f"{compilerLocation} generate {source_path}/plc.json headers" + result = subprocess.run(generate_command, shell=True, check=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + lit_config.note(f"Successfully generated header file...") +except subprocess.CalledProcessError as e: + lit_config.error(f"Failed to generate header file: {e.stderr.decode()}") + raise + +# Compile {tmp_src_name}.c to lib_{tmp_src_name}.so in the tmp directory +try: + lit_config.note(f"Compiling {tmp_src_name}.c into {tmp_lib_file}...") + gcc_cmd = f"gcc -shared -fPIC -o {tmp_lib_file} -I{source_path} {source_path}/{tmp_src_name}.c" + lit_config.note(f"Running: {gcc_cmd}") + result = subprocess.run(gcc_cmd, shell=True, check=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + lit_config.note(f"Successfully compiled {tmp_lib_file}") +except subprocess.CalledProcessError as e: + lit_config.error(f"Failed to compile {tmp_src_name}.c: {e.stderr.decode()}") + raise + +# Build on the existing compile command but add our custom library +compile = f'{compilerLocation}' +compile = f'{compile} -o /tmp/%basename_t.out' +compile = f'{compile} -liec61131std -L{stdlibLocation}/lib -i "{stdlibLocation}/include/*.st"' +compile = f'{compile} -i "{rustyRootDirectory}/tests/lit/util/*.pli"' +compile = f'{compile} -L{tmp_lib_path} -l{tmp_src_name} -i {source_path}/{tmp_src_name}.pli' +compile = f'{compile} --linker=cc' + +# Log the compile command +lit_config.note(f"Compile command: {compile}") + +# Update the run command to include the custom library path +run_cmd = f'LD_LIBRARY_PATH="{stdlibLocation}/lib:{tmp_lib_path}" /tmp/%basename_t.out' + +# Override the substitutions +config.substitutions = [s for s in config.substitutions if s[0] not in ['%COMPILE', '%RUN']] +config.substitutions.append(('%COMPILE', f'{compile}')) +config.substitutions.append(('%RUN', f'{run_cmd}')) diff --git a/tests/lit/multi/header_generator/message_printer/message_printer.c b/tests/lit/multi/header_generator/message_printer/message_printer.c new file mode 100644 index 0000000000..557343974a --- /dev/null +++ b/tests/lit/multi/header_generator/message_printer/message_printer.c @@ -0,0 +1,5 @@ +#include "message_printer.h" + +void PrintMessage(T_Message* message) { + printf("%s\n", message); +} diff --git a/tests/lit/multi/header_generator/message_printer/message_printer.h b/tests/lit/multi/header_generator/message_printer/message_printer.h new file mode 100644 index 0000000000..6a50a9a200 --- /dev/null +++ b/tests/lit/multi/header_generator/message_printer/message_printer.h @@ -0,0 +1,19 @@ +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef MESSAGE_PRINTER +#define MESSAGE_PRINTER + +#include +#include +#include + +#include + +typedef char T_Message[255]; + +void PrintMessage(T_Message* message); + +#endif /* !MESSAGE_PRINTER */ diff --git a/tests/lit/multi/header_generator/message_printer/message_printer.pli b/tests/lit/multi/header_generator/message_printer/message_printer.pli new file mode 100644 index 0000000000..4f15aa6280 --- /dev/null +++ b/tests/lit/multi/header_generator/message_printer/message_printer.pli @@ -0,0 +1,8 @@ +TYPE T_Message : STRING[255]; +END_TYPE + +FUNCTION PrintMessage +VAR_INPUT + message: T_Message; +END_VAR +END_FUNCTION diff --git a/tests/lit/multi/header_generator/message_printer/message_printer.test b/tests/lit/multi/header_generator/message_printer/message_printer.test new file mode 100644 index 0000000000..8685cbbe0f --- /dev/null +++ b/tests/lit/multi/header_generator/message_printer/message_printer.test @@ -0,0 +1,5 @@ +RUN: %COMPILE %S/message_printer_prog.st && %RUN | %CHECK %s +CHECK: One ring to rule them all, +CHECK: one ring to find them. +CHECK: One ring to bring them all, +CHECK: and in the darkness bind them. diff --git a/tests/lit/multi/header_generator/message_printer/message_printer_prog.st b/tests/lit/multi/header_generator/message_printer/message_printer_prog.st new file mode 100644 index 0000000000..c1728b3b7b --- /dev/null +++ b/tests/lit/multi/header_generator/message_printer/message_printer_prog.st @@ -0,0 +1,19 @@ +FUNCTION main +VAR + message1: T_Message := "One ring to rule them all,"; + message2: T_Message := "one ring to find them."; + message3: T_Message := "One ring to bring them all,"; + message4: T_Message := "and in the darkness bind them."; +END_VAR + // Print message 1 + PrintMessage(message1); + + // Print message 2 + PrintMessage(message2); + + // Print message 3 + PrintMessage(message3); + + // Print message 4 + PrintMessage(message4); +END_FUNCTION diff --git a/tests/lit/multi/header_generator/message_printer/plc.json b/tests/lit/multi/header_generator/message_printer/plc.json new file mode 100644 index 0000000000..5eaf9c949d --- /dev/null +++ b/tests/lit/multi/header_generator/message_printer/plc.json @@ -0,0 +1,11 @@ +{ + "name" : "HeaderGeneratorProject", + "files" : [ + "message_printer.pli" + ], + "compile_type" : "Shared", + "output" : "prog.so", + "libraries" : [ + ] +} + diff --git a/tests/lit/multi/header_generator/number_printer/dependencies.plc.h b/tests/lit/multi/header_generator/number_printer/dependencies.plc.h new file mode 100644 index 0000000000..9a79500886 --- /dev/null +++ b/tests/lit/multi/header_generator/number_printer/dependencies.plc.h @@ -0,0 +1,8 @@ +#ifndef DEPENDENCIES_PLC +#define DEPENDENCIES_PLC + +/* + * Add any library dependencies that can not be implicitly detected here + */ + +#endif /* !DEPENDENCIES_PLC */ diff --git a/tests/lit/multi/header_generator/number_printer/lit.local.cfg b/tests/lit/multi/header_generator/number_printer/lit.local.cfg new file mode 100644 index 0000000000..8b03609761 --- /dev/null +++ b/tests/lit/multi/header_generator/number_printer/lit.local.cfg @@ -0,0 +1,59 @@ +# Override the compile command to include the custom library +import os.path +import subprocess + +# Access the same parameters that the main configuration uses +stdlibLocation = lit_config.params["LIB"] +compilerLocation = lit_config.params["COMPILER"] + +# Derive rusty root directory using relative paths +test_dir = os.path.dirname(__file__) +source_path = os.path.abspath(test_dir) +rustyRootDirectory = os.path.abspath(os.path.join(test_dir, "..", "..", "..", "..")) + +# Use tmp directory for compiled library +tmp_lib_path = "/tmp" +tmp_src_name = "number_printer" +tmp_lib_file = f"{tmp_lib_path}/lib{tmp_src_name}.so" + +# Generate header files +try: + lit_config.note(f"Generating header file...") + generate_command = f"{compilerLocation} generate {source_path}/plc.json headers" + result = subprocess.run(generate_command, shell=True, check=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + lit_config.note(f"Successfully generated header file...") +except subprocess.CalledProcessError as e: + lit_config.error(f"Failed to generate header file: {e.stderr.decode()}") + raise + +# Compile {tmp_src_name}.c to lib_{tmp_src_name}.so in the tmp directory +try: + lit_config.note(f"Compiling {tmp_src_name}.c into {tmp_lib_file}...") + gcc_cmd = f"gcc -shared -fPIC -o {tmp_lib_file} -I{source_path} {source_path}/{tmp_src_name}.c" + lit_config.note(f"Running: {gcc_cmd}") + result = subprocess.run(gcc_cmd, shell=True, check=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + lit_config.note(f"Successfully compiled {tmp_lib_file}") +except subprocess.CalledProcessError as e: + lit_config.error(f"Failed to compile {tmp_src_name}.c: {e.stderr.decode()}") + raise + +# Build on the existing compile command but add our custom library +compile = f'{compilerLocation}' +compile = f'{compile} -o /tmp/%basename_t.out' +compile = f'{compile} -liec61131std -L{stdlibLocation}/lib -i "{stdlibLocation}/include/*.st"' +compile = f'{compile} -i "{rustyRootDirectory}/tests/lit/util/*.pli"' +compile = f'{compile} -L{tmp_lib_path} -l{tmp_src_name} -i {source_path}/{tmp_src_name}.pli' +compile = f'{compile} --linker=cc' + +# Log the compile command +lit_config.note(f"Compile command: {compile}") + +# Update the run command to include the custom library path +run_cmd = f'LD_LIBRARY_PATH="{stdlibLocation}/lib:{tmp_lib_path}" /tmp/%basename_t.out' + +# Override the substitutions +config.substitutions = [s for s in config.substitutions if s[0] not in ['%COMPILE', '%RUN']] +config.substitutions.append(('%COMPILE', f'{compile}')) +config.substitutions.append(('%RUN', f'{run_cmd}')) diff --git a/tests/lit/multi/header_generator/number_printer/number_printer.c b/tests/lit/multi/header_generator/number_printer/number_printer.c new file mode 100644 index 0000000000..25d53a94fd --- /dev/null +++ b/tests/lit/multi/header_generator/number_printer/number_printer.c @@ -0,0 +1,5 @@ +#include "number_printer.h" + +void PrintNumber(int16_t valueToPrint) { + printf("The number you asked for: %d", valueToPrint); +} diff --git a/tests/lit/multi/header_generator/number_printer/number_printer.h b/tests/lit/multi/header_generator/number_printer/number_printer.h new file mode 100644 index 0000000000..6fe90f5d57 --- /dev/null +++ b/tests/lit/multi/header_generator/number_printer/number_printer.h @@ -0,0 +1,17 @@ +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef NUMBER_PRINTER +#define NUMBER_PRINTER + +#include +#include +#include + +#include + +void PrintNumber(int16_t valueToPrint); + +#endif /* !NUMBER_PRINTER */ diff --git a/tests/lit/multi/header_generator/number_printer/number_printer.pli b/tests/lit/multi/header_generator/number_printer/number_printer.pli new file mode 100644 index 0000000000..391fe96d7e --- /dev/null +++ b/tests/lit/multi/header_generator/number_printer/number_printer.pli @@ -0,0 +1,5 @@ +FUNCTION PrintNumber +VAR_INPUT + valueToPrint: INT; +END_VAR +END_FUNCTION diff --git a/tests/lit/multi/header_generator/number_printer/number_printer.test b/tests/lit/multi/header_generator/number_printer/number_printer.test new file mode 100644 index 0000000000..003c52c446 --- /dev/null +++ b/tests/lit/multi/header_generator/number_printer/number_printer.test @@ -0,0 +1,2 @@ +RUN: %COMPILE %S/number_printer_prog.st && %RUN | %CHECK %s +CHECK: The number you asked for: 42 diff --git a/tests/lit/multi/header_generator/number_printer/number_printer_prog.st b/tests/lit/multi/header_generator/number_printer/number_printer_prog.st new file mode 100644 index 0000000000..7cb2666c06 --- /dev/null +++ b/tests/lit/multi/header_generator/number_printer/number_printer_prog.st @@ -0,0 +1,7 @@ +FUNCTION main +VAR + // No variables +END_VAR + // Print output + PrintNumber(42); +END_FUNCTION diff --git a/tests/lit/multi/header_generator/number_printer/plc.json b/tests/lit/multi/header_generator/number_printer/plc.json new file mode 100644 index 0000000000..2f705ae71c --- /dev/null +++ b/tests/lit/multi/header_generator/number_printer/plc.json @@ -0,0 +1,11 @@ +{ + "name" : "HeaderGeneratorProject", + "files" : [ + "number_printer.pli" + ], + "compile_type" : "Shared", + "output" : "prog.so", + "libraries" : [ + ] +} + diff --git a/tests/lit/multi/header_generator/shape_drawer/dependencies.plc.h b/tests/lit/multi/header_generator/shape_drawer/dependencies.plc.h new file mode 100644 index 0000000000..9a79500886 --- /dev/null +++ b/tests/lit/multi/header_generator/shape_drawer/dependencies.plc.h @@ -0,0 +1,8 @@ +#ifndef DEPENDENCIES_PLC +#define DEPENDENCIES_PLC + +/* + * Add any library dependencies that can not be implicitly detected here + */ + +#endif /* !DEPENDENCIES_PLC */ diff --git a/tests/lit/multi/header_generator/shape_drawer/lit.local.cfg b/tests/lit/multi/header_generator/shape_drawer/lit.local.cfg new file mode 100644 index 0000000000..1eb7a682ea --- /dev/null +++ b/tests/lit/multi/header_generator/shape_drawer/lit.local.cfg @@ -0,0 +1,59 @@ +# Override the compile command to include the custom library +import os.path +import subprocess + +# Access the same parameters that the main configuration uses +stdlibLocation = lit_config.params["LIB"] +compilerLocation = lit_config.params["COMPILER"] + +# Derive rusty root directory using relative paths +test_dir = os.path.dirname(__file__) +source_path = os.path.abspath(test_dir) +rustyRootDirectory = os.path.abspath(os.path.join(test_dir, "..", "..", "..", "..")) + +# Use tmp directory for compiled library +tmp_lib_path = "/tmp" +tmp_src_name = "shape_drawer" +tmp_lib_file = f"{tmp_lib_path}/lib{tmp_src_name}.so" + +# Generate header files +try: + lit_config.note(f"Generating header file...") + generate_command = f"{compilerLocation} generate {source_path}/plc.json headers" + result = subprocess.run(generate_command, shell=True, check=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + lit_config.note(f"Successfully generated header file...") +except subprocess.CalledProcessError as e: + lit_config.error(f"Failed to generate header file: {e.stderr.decode()}") + raise + +# Compile {tmp_src_name}.c to lib_{tmp_src_name}.so in the tmp directory +try: + lit_config.note(f"Compiling {tmp_src_name}.c into {tmp_lib_file}...") + gcc_cmd = f"gcc -shared -fPIC -o {tmp_lib_file} -I{source_path} {source_path}/{tmp_src_name}.c" + lit_config.note(f"Running: {gcc_cmd}") + result = subprocess.run(gcc_cmd, shell=True, check=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + lit_config.note(f"Successfully compiled {tmp_lib_file}") +except subprocess.CalledProcessError as e: + lit_config.error(f"Failed to compile {tmp_src_name}.c: {e.stderr.decode()}") + raise + +# Build on the existing compile command but add our custom library +compile = f'{compilerLocation}' +compile = f'{compile} -o /tmp/%basename_t.out' +compile = f'{compile} -liec61131std -L{stdlibLocation}/lib -i "{stdlibLocation}/include/*.st"' +compile = f'{compile} -i "{rustyRootDirectory}/tests/lit/util/*.pli"' +compile = f'{compile} -L{tmp_lib_path} -l{tmp_src_name} -i {source_path}/{tmp_src_name}.pli' +compile = f'{compile} --linker=cc' + +# Log the compile command +lit_config.note(f"Compile command: {compile}") + +# Update the run command to include the custom library path +run_cmd = f'LD_LIBRARY_PATH="{stdlibLocation}/lib:{tmp_lib_path}" /tmp/%basename_t.out' + +# Override the substitutions +config.substitutions = [s for s in config.substitutions if s[0] not in ['%COMPILE', '%RUN']] +config.substitutions.append(('%COMPILE', f'{compile}')) +config.substitutions.append(('%RUN', f'{run_cmd}')) diff --git a/tests/lit/multi/header_generator/shape_drawer/plc.json b/tests/lit/multi/header_generator/shape_drawer/plc.json new file mode 100644 index 0000000000..309ef46568 --- /dev/null +++ b/tests/lit/multi/header_generator/shape_drawer/plc.json @@ -0,0 +1,11 @@ +{ + "name" : "HeaderGeneratorProject", + "files" : [ + "shape_drawer.pli" + ], + "compile_type" : "Shared", + "output" : "prog.so", + "libraries" : [ + ] +} + diff --git a/tests/lit/multi/header_generator/shape_drawer/shape_drawer.c b/tests/lit/multi/header_generator/shape_drawer/shape_drawer.c new file mode 100644 index 0000000000..8f171e7cee --- /dev/null +++ b/tests/lit/multi/header_generator/shape_drawer/shape_drawer.c @@ -0,0 +1,19 @@ +#include "shape_drawer.h" + +void Rectangle(Rectangle_type* self) {} + +void Rectangle__FB_INIT(Rectangle_type* self) { + self->x = 6; + self->y = 3; + + DrawRectangle(self->x, self->y); +} + +void DrawRectangle(int32_t x, int32_t y) { + for (int i = 0; i < y; i++) { + for (int j = 0; j < x; j++) { + printf("*"); + } + printf("\n"); + } +} diff --git a/tests/lit/multi/header_generator/shape_drawer/shape_drawer.h b/tests/lit/multi/header_generator/shape_drawer/shape_drawer.h new file mode 100644 index 0000000000..47dbf78b72 --- /dev/null +++ b/tests/lit/multi/header_generator/shape_drawer/shape_drawer.h @@ -0,0 +1,29 @@ +// ---------------------------------------------------- // +// This file is auto-generated // +// Manual changes made to this file will be overwritten // +// ---------------------------------------------------- // + +#ifndef SHAPE_DRAWER +#define SHAPE_DRAWER + +#include +#include +#include + +#include + +typedef struct { + uint64_t* __vtable; + int32_t x; + int32_t y; +} Rectangle_type; + +extern Rectangle_type __Rectangle__init = { 0 }; + +void Rectangle(Rectangle_type* self); + +void Rectangle__FB_INIT(Rectangle_type* self); + +void DrawRectangle(int32_t x, int32_t y); + +#endif /* !SHAPE_DRAWER */ diff --git a/tests/lit/multi/header_generator/shape_drawer/shape_drawer.pli b/tests/lit/multi/header_generator/shape_drawer/shape_drawer.pli new file mode 100644 index 0000000000..b16677a35c --- /dev/null +++ b/tests/lit/multi/header_generator/shape_drawer/shape_drawer.pli @@ -0,0 +1,15 @@ +FUNCTION_BLOCK Rectangle +VAR + x : DINT; + y : DINT; +END_VAR + METHOD FB_INIT + END_METHOD +END_FUNCTION_BLOCK + +FUNCTION DrawRectangle +VAR_INPUT + x : DINT; + y : DINT; +END_VAR +END_FUNCTION diff --git a/tests/lit/multi/header_generator/shape_drawer/shape_drawer.test b/tests/lit/multi/header_generator/shape_drawer/shape_drawer.test new file mode 100644 index 0000000000..c851011155 --- /dev/null +++ b/tests/lit/multi/header_generator/shape_drawer/shape_drawer.test @@ -0,0 +1,4 @@ +RUN: %COMPILE %S/shape_drawer_prog.st && %RUN | %CHECK %s +CHECK: ****** +CHECK: ****** +CHECK: ****** diff --git a/tests/lit/multi/header_generator/shape_drawer/shape_drawer_prog.st b/tests/lit/multi/header_generator/shape_drawer/shape_drawer_prog.st new file mode 100644 index 0000000000..632cf8549d --- /dev/null +++ b/tests/lit/multi/header_generator/shape_drawer/shape_drawer_prog.st @@ -0,0 +1,6 @@ +FUNCTION main +VAR + rect: Rectangle; +END_VAR + // Logic handled in initializer +END_FUNCTION diff --git a/tests/tests.rs b/tests/tests.rs index 226d3eb71a..4a48b02774 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -53,6 +53,7 @@ mod integration { mod cfc; mod command_line_compile; mod external_files; + mod header_generator_tests; mod linking; mod multi_files; }