/// <summary> /// Creates a new interpreter /// </summary> public Interpreter(TrsProgramBlock programBlock, List <ITrsNativeFunction> nativeFunctions = null, List <ITrsUnifierCalculation> customUnifiersCalculations = null) { if (nativeFunctions == null) { nativeFunctions = new List <ITrsNativeFunction>(); } else { this.nativeFunctions = nativeFunctions; } mguCalculation = new MguCalculation(customUnifiersCalculations); this.initialProgram = programBlock; var validator = new TrsProgramBlockValidator(); validator.Validate(this.initialProgram); ValidationMessages = new List <InterpreterResultMessage>(); ValidationMessages.AddRange(validator.ValidationMessages); this.hasErrors = ValidationMessages.Where(msg => msg.MessageType == InterpreterMessageType.Error).Count() > 0; if (!hasErrors) { ClassifyInput(); } }
/// <summary> /// Creates a new interpreter /// </summary> public Interpreter(TrsProgramBlock programBlock, List<ITrsNativeFunction> nativeFunctions = null, List<ITrsUnifierCalculation> customUnifiersCalculations = null) { if (nativeFunctions == null) nativeFunctions = new List<ITrsNativeFunction>(); else this.nativeFunctions = nativeFunctions; mguCalculation = new MguCalculation(customUnifiersCalculations); this.initialProgram = programBlock; var validator = new TrsProgramBlockValidator(); validator.Validate(this.initialProgram); ValidationMessages = new List<InterpreterResultMessage>(); ValidationMessages.AddRange(validator.ValidationMessages); this.hasErrors = ValidationMessages.Where(msg => msg.MessageType == InterpreterMessageType.Error).Count() > 0; if (!hasErrors) ClassifyInput(); }