LustreSyntaxChecksCheck various syntactic properties that do not depend on type information
module LA = LustreAsttype error_kind = | Unknown of string| UndefinedLocal of HString.t| DuplicateLocal of HString.t * Lib.position| DuplicateOutput of HString.t * Lib.position| UndefinedOutput of HString.t| DuplicateProperty of HString.t| InvalidPropertyName of HString.t| UndefinedNode of HString.t| UndefinedContract of HString.t| DanglingIdentifier of HString.t| QuantifiedVariableInPre of HString.t| QuantifiedVariableInNodeArgument of HString.t * HString.t| SymbolicArrayIndexInNodeArgument of HString.t * HString.t| QuantifiedVariableInLazyGuardedNodeCall of HString.t * HString.t| SymbolicArrayIndexInLazyGuardedNodeCall of HString.t * HString.t| QuantifiedVariableInTypeAscription of HString.t| SymbolicArrayIndexInTypeAscription of HString.t| IllegalNodeCall of HString.t * string| IllegalAnyOp of string| NodeCallInConstant of HString.t| NodeCallInGlobalTypeDecl of HString.t| IllegalTemporalOperator of string * string| IllegalImportOfStatefulContract of HString.t| UnsupportedClockedInputOrOutput| UnsupportedClockedLocal of HString.t| UnsupportedExpression of LustreAst.expr| UnsupportedOutsideMerge of LustreAst.expr| UnsupportedWhen of LustreAst.expr| UnsupportedParametricDeclaration| UnsupportedAssignment| MultAssignArrayDef| AssumptionVariablesInContractNode| MisplacedVarInFrameBlock of LustreAst.ident| MisplacedAssertInFrameBlock| OpaqueWithoutContract of LustreAst.ident| TransparentWithoutBody of LustreAst.ident| IllegalHistoryVar of LustreAst.ident| InductiveVarsWithArrayConstr of LustreAst.expr| DuplicatePatternVariable of HString.t| MissingDecreasesClause of HString.t| IllegalDecreasesMeasure of HString.t| MultipleDecreasesClauses of HString.t| DecreasesClauseInContractNodeDecl of HString.t| MisplacedDecreasesClause of HString.t| MisplacedAuto| LemmaCallOutsideCallStatement of HString.t| CallStatementCallsNonLemma of HString.t| InvalidUnderscoreval error_message : error_kind -> stringval warning_message : warning_kind -> stringval error_if_lus_strict : warning_kind -> boolval no_quant_vars_in_calls_to_non_inlinable_funcs :
TypeCheckerContext.tc_context ->
NodeId.Set.t ->
LA.t ->
([> warning ] list, [> error ]) Stdlib.result