public void SetUp() { parser = new RawTokenParser(); }
public Template Parse(string content, string name) { log.Debug("Start: Parsing Template"); var template = new Template(name, content); var rawTemplate = new RawTokenParser().Parse(content, Options); template.Options = rawTemplate.Options; foreach (var rawToken in rawTemplate.Tokens) { var token = new Token(); if (Options.TrimLeadingWhitespaceInTokenPreamble) { if (rawToken.Preamble.IsOnlySpaces()) { token.Preamble = rawToken.Preamble; } if (string.IsNullOrWhiteSpace(rawToken.Preamble)) { token.Preamble = rawToken.Preamble.TrimLeadingSpaces(); } else { token.Preamble = rawToken.Preamble.TrimStart(); } } else { token.Preamble = rawToken.Preamble; } token.Name = rawToken.Name; token.Optional = rawToken.Optional; token.Repeating = rawToken.Repeating; token.TerminateOnNewLine = rawToken.TerminateOnNewline; // All tokens optional if out-of-order enabled if (template.Options.OutOfOrderTokens) { token.Optional = true; } var tokenTransformers = new List <TransformerContext>(); var tokenValidators = new List <ValidatorContext>(); ParseTokenOperators(rawToken.Decorators, tokenTransformers, tokenValidators); foreach (var tokenOperator in tokenTransformers) { token.Transformers.Add(tokenOperator); } foreach (var tokenValidator in tokenValidators) { token.Validators.Add(tokenValidator); } template.AddToken(token); log.Trace($" -> Added Token: {token.Name}"); } log.Debug("Finish: Parsing Template"); return(template); }