Example #1
0
        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)
 {
 }
Example #3
0
 /// <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;
 }
Example #4
0
 /// <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;
 }
Example #5
0
 /// <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)
 {
 }
Example #7
0
 /// <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)
 {
 }
Example #8
0
 /// <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);
 }