public TrlParseResult ParseToAst(string input) { var tokenizationResult = _tokenizer.Tokenize(input); if (!tokenizationResult.Succeed) { return(new TrlParseResult { Succeed = false }); } var tokensNoWhitespace = tokenizationResult.MatchedRanges.Where(token => token.TokenName != TokenNames.Whitespace && token.TokenName != TokenNames.Comment); var parseResult = _parser.Parse(tokensNoWhitespace.ToList().AsReadOnly()); var validator = new SemanticValidator(); var semanticErrors = validator.GetSemanticErrors(parseResult); if (!parseResult.Succeed || semanticErrors.Count > 0) { return(new TrlParseResult { Succeed = false, Errors = semanticErrors }); } else { return(new TrlParseResult { Succeed = true, Statements = (StatementList)parseResult.SemanticActionResult }); } }
/// <summary> /// Initializes a new instance of the WordprocessingDocumentValidator. /// </summary> /// <param name="settings">The validation settings.</param> /// <param name="schemaValidator">The schema validator to be used for schema validation.</param> /// <param name="semanticValidator">The semantic validator to be used for semantic validation.</param> internal WordprocessingDocumentValidator(ValidationSettings settings, SchemaValidator schemaValidator, SemanticValidator semanticValidator) : base(settings, schemaValidator, semanticValidator) { }
/// <summary> /// Initializes a new instance of the DocumentValidator. /// </summary> /// <param name="schemaValidator">The schema validator to be used for schema validation.</param> /// <param name="semanticValidator">The semantic validator to be used for semantic validation.</param> /// <param name="cache">The shared validation cache.</param> public DocumentValidator(SchemaValidator schemaValidator, SemanticValidator semanticValidator, ValidationCache cache) { _cache = cache; _schemaValidator = schemaValidator; _semanticValidator = semanticValidator; }
/// <summary> /// Initializes a new instance of the DocumentValidator. /// </summary> /// <param name="settings">The validation settings.</param> /// <param name="schemaValidator">The schema validator to be used for schema validation.</param> /// <param name="semanticValidator">The semantic validator to be used for semantic validation.</param> internal DocumentValidator(ValidationSettings settings, SchemaValidator schemaValidator, SemanticValidator semanticValidator) { this.SchemaValidator = schemaValidator; this.SemanticValidator = semanticValidator; this.ValidationSettings = settings; }
/// <summary> /// Initializes a new instance of the DocumentValidator. /// </summary> /// <param name="settings">The validation settings.</param> /// <param name="schemaValidator">The schema validator to be used for schema validation.</param> /// <param name="semanticValidator">The semantic validator to be used for semantic validation.</param> public DocumentValidator(ValidationSettings settings, SchemaValidator schemaValidator, SemanticValidator semanticValidator) { _schemaValidator = schemaValidator; _semanticValidator = semanticValidator; _validationSettings = settings; }
/// <summary> /// Initializes a new instance of the SpreadsheetDocumentValidator. /// </summary> /// <param name="settings">The validation settings.</param> /// <param name="schemaValidator">The schema validator to be used for schema validation.</param> /// <param name="semanticValidator">The semantic validator to be used for semantic validation.</param> internal SpreadsheetDocumentValidator(ValidationSettings settings, SchemaValidator schemaValidator, SemanticValidator semanticValidator) : base(settings, schemaValidator, semanticValidator) { }
/// <summary> /// Initializes a new instance of the PresentationDocumentValidator. /// </summary> /// <param name="settings">The validation settings.</param> /// <param name="schemaValidator">The schema validator to be used for schema validation.</param> /// <param name="semanticValidator">The semantic validator to be used for semantic validation.</param> internal PresentationDocumentValidator(ValidationSettings settings, SchemaValidator schemaValidator, SemanticValidator semanticValidator) : base(settings, schemaValidator, semanticValidator) { }
/// <summary> /// Creates a population object. /// </summary> /// <param name="metadata">The population metadata.</param> /// <returns>The constructed population.</returns> public IPopulation CreatePopulation(IPopulationMetadata metadata) { SemanticValidator.Validate(metadata); return(new Population(metadata) as IPopulation); }