RootNamespace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Package(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Package { identification: Identification { short_name: None, name: Some("4a-Functional Allocation") }, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Import(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Import { visibility: Some(Private), is_import_all: true, target: "2a-Parts Interconnection::*", target_span: Span { offset: 0, line: 1, column: 1, len: 0 }, is_recursive: false, filter_members: None } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Import(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Import { visibility: Some(Private), is_import_all: true, target: "3a-Function-based Behavior-1::*", target_span: Span { offset: 0, line: 1, column: 1, len: 0 }, is_recursive: false, filter_members: None } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Import(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Import { visibility: Some(Private), is_import_all: true, target: "3a-Function-based Behavior-1::provide power::*", target_span: Span { offset: 0, line: 1, column: 1, len: 0 }, is_recursive: false, filter_members: None } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage { usage_prefix: None, is_individual: false, name: "vehicle1_c1_functional_allocation", type_name: "", multiplicity: None, ordered: false, subsets: Some(("vehicle1_c1", None)), redefines: None, value: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage { name: "fuelCmdPort", type_name: None, multiplicity: None, subsets: None, redefines: Some("fuelCmdPort"), references: None, crosses: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl { direction: In, name: "fuelCmd", type_name: "FuelCmd", value: None } }) }] }, name_span: None, type_ref_span: None } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Perform(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Perform { action_name: "provide power", type_name: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Doc(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: DocComment { identification: None, locale: None, text: "\n\t\t * This allocates the action '3a-Function-based Behavior-1'::'provide power' as an enacted \n\t\t * performance of 'vehicle_c1_functional_allocation'.\n\t\t " } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOut(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PerformInOutBinding { direction: In, name: "fuelCmd", value: Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: FeatureRef("fuelCmdPort") }, "fuelCmd") } } }) }] } } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage { usage_prefix: None, is_individual: false, name: "", type_name: "", multiplicity: None, ordered: false, subsets: None, redefines: Some("engine"), value: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage { name: "fuelCmdPort", type_name: None, multiplicity: None, subsets: None, redefines: Some("fuelCmdPort"), references: None, crosses: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl { direction: In, name: "fuelCmd", type_name: "FuelCmd", value: None } }) }] }, name_span: None, type_ref_span: None } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Perform(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Perform { action_name: "provide power.generate torque", type_name: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOut(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PerformInOutBinding { direction: In, name: "fuelCmd", value: Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: FeatureRef("fuelCmdPort") }, "fuelCmd") } } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOut(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PerformInOutBinding { direction: Out, name: "engineTorque", value: Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: FeatureRef("drivePwrPort") }, "engineTorque") } } }) }] } } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage { name: "drivePwrPort", type_name: None, multiplicity: None, subsets: None, redefines: Some("drivePwrPort"), references: None, crosses: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl { direction: Out, name: "engineTorque", type_name: "Torque", value: None } }) }] }, name_span: None, type_ref_span: None } }) }] }, name_span: None, type_ref_span: None } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage { usage_prefix: None, is_individual: false, name: "", type_name: "", multiplicity: None, ordered: false, subsets: None, redefines: Some("transmission"), value: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage { name: "clutchPort", type_name: None, multiplicity: None, subsets: None, redefines: Some("clutchPort"), references: None, crosses: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl { direction: In, name: "engineTorque", type_name: "Torque", value: None } }) }] }, name_span: None, type_ref_span: None } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Perform(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Perform { action_name: "provide power.amplify torque", type_name: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOut(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PerformInOutBinding { direction: In, name: "engineTorque", value: Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: FeatureRef("clutchPort") }, "engineTorque") } } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOut(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PerformInOutBinding { direction: Out, name: "transmissionTorque", value: Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: FeatureRef("shaftPort_a") }, "transmissionTorque") } } }) }] } } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage { name: "shaftPort_a", type_name: None, multiplicity: None, subsets: None, redefines: Some("shaftPort_a"), references: None, crosses: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl { direction: Out, name: "transmissionTorque", type_name: "Torque", value: None } }) }] }, name_span: None, type_ref_span: None } }) }] }, name_span: None, type_ref_span: None } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage { usage_prefix: None, is_individual: false, name: "", type_name: "", multiplicity: None, ordered: false, subsets: None, redefines: Some("driveshaft"), value: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage { name: "shaftPort_b", type_name: None, multiplicity: None, subsets: None, redefines: Some("shaftPort_b"), references: None, crosses: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl { direction: In, name: "transmissionTorque", type_name: "Torque", value: None } }) }] }, name_span: None, type_ref_span: None } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Perform(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Perform { action_name: "provide power.transfer torque", type_name: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOut(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PerformInOutBinding { direction: In, name: "transmissionTorque", value: Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: FeatureRef("shaftPort_b") }, "transmissionTorque") } } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOut(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PerformInOutBinding { direction: Out, name: "driveshaftTorque", value: Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: FeatureRef("shaftPort_c") }, "driveshaftTorque") } } }) }] } } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage { name: "shaftPort_c", type_name: None, multiplicity: None, subsets: None, redefines: Some("shaftPort_c"), references: None, crosses: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl { direction: Out, name: "driveshaftTorque", type_name: "Torque", value: None } }) }] }, name_span: None, type_ref_span: None } }) }] }, name_span: None, type_ref_span: None } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage { usage_prefix: None, is_individual: false, name: "", type_name: "", multiplicity: None, ordered: false, subsets: None, redefines: Some("rearAxleAssembly"), value: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage { name: "shaftPort_d", type_name: None, multiplicity: None, subsets: None, redefines: Some("shaftPort_d"), references: None, crosses: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl { direction: In, name: "driveshaftTorque", type_name: "Torque", value: None } }) }] }, name_span: None, type_ref_span: None } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Perform(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: Perform { action_name: "provide power.distribute torque", type_name: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOut(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PerformInOutBinding { direction: In, name: "driveshaftTorque", value: Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: FeatureRef("shaftPort_d") }, "driveshaftTorque") } } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOut(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PerformInOutBinding { direction: Out, name: "wheelTorque1", value: Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: FeatureRef("rearAxle") }, "leftHalfAxle") }, "axleToWheelPort") }, "wheelTorque") } } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOut(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PerformInOutBinding { direction: Out, name: "wheelTorque2", value: Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: MemberAccess(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: FeatureRef("rearAxle") }, "rightHalfAxle") }, "axleToWheelPort") }, "wheelTorque") } } }) }] } } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage { usage_prefix: None, is_individual: false, name: "", type_name: "", multiplicity: None, ordered: false, subsets: None, redefines: Some("rearAxle"), value: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage { usage_prefix: None, is_individual: false, name: "", type_name: "", multiplicity: None, ordered: false, subsets: None, redefines: Some("leftHalfAxle"), value: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage { name: "axleToWheelPort", type_name: None, multiplicity: None, subsets: None, redefines: Some("axleToWheelPort"), references: None, crosses: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl { direction: Out, name: "wheelTorque", type_name: "Torque", value: None } }) }] }, name_span: None, type_ref_span: None } }) }] }, name_span: None, type_ref_span: None } }) }, Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PartUsage { usage_prefix: None, is_individual: false, name: "", type_name: "", multiplicity: None, ordered: false, subsets: None, redefines: Some("rightHalfAxle"), value: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: PortUsage { name: "axleToWheelPort", type_name: None, multiplicity: None, subsets: None, redefines: Some("axleToWheelPort"), references: None, crosses: None, body: Brace { elements: [Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl(Node { span: Span { offset: 0, line: 1, column: 1, len: 0 }, value: InOutDecl { direction: Out, name: "wheelTorque", type_name: "Torque", value: None } }) }] }, name_span: None, type_ref_span: None } }) }] }, name_span: None, type_ref_span: None } }) }] }, name_span: None, type_ref_span: None } }) }] }, name_span: None, type_ref_span: None } }) }] }, name_span: None, type_ref_span: None } }) }] } } }) }] }