-- -- Copyright (C) 2022-2023, AdaCore -- -- SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -- with Ada.Containers.Vectors; with VSS.Strings; with VSS.String_Vectors; with VSS.XML.Content_Handlers; with VSS.XML.Error_Handlers; with VSS.XML.Implementation.Error_Handlers; with VSS.XML.Implementation.Template_Namespaces; with VSS.XML.Implementation.Template_Programs; with VSS.XML.Lexical_Handlers; with VSS.XML.Templates.Proxies; package VSS.XML.Implementation.Template_Evaluators is type Filter_Kind is (None, Ignore_Children); type Iterable_Iterator_Access is access all VSS.XML.Templates.Proxies.Abstract_Iterable_Iterator'Class; type State is record Element : VSS.XML.Implementation.Template_Programs.Address; Namespace : VSS.XML.Implementation.Template_Namespaces.Namespace_Access; Condition : VSS.String_Vectors.Virtual_String_Vector; Negate : Boolean; Exists : Boolean; Iterator : Iterable_Iterator_Access; Content : VSS.String_Vectors.Virtual_String_Vector; Omit_Tag : Boolean; System_Id : VSS.Strings.Virtual_String; Line : VSS.Strings.Line_Count; Column : VSS.Strings.Character_Count; end record; package State_Vectors is new Ada.Containers.Vectors (Positive, State); type Template_Evaluator is tagged limited record Content : VSS.XML.Content_Handlers.SAX_Content_Handler_Access; Lexical : VSS.XML.Lexical_Handlers.SAX_Lexical_Handler_Access; Error : VSS.XML.Error_Handlers.SAX_Error_Handler_Access := VSS.XML.Implementation.Error_Handlers.Default'Access; Globals : aliased VSS.XML.Implementation.Template_Namespaces.Namespace; Current : State; Stack : State_Vectors.Vector; end record; procedure Evaluate (Self : in out Template_Evaluator'Class; Binded : not null VSS.XML.Implementation.Template_Namespaces.Namespace_Access; Program : VSS.XML.Implementation.Template_Programs.Instruction_Vectors.Vector; Success : in out Boolean); end VSS.XML.Implementation.Template_Evaluators;