/// <summary> /// Ensures that specified data could be parsed as a syntactic item. /// </summary> public static void Ensure(SyntacticItem item, string data) { if (!TryParse(item, data)) { throw new InvalidOperationException(); } }
/// <summary> /// Checks whether specified data string can be fully parsed to the syntactic item. /// </summary> public void Check(bool expected, SyntacticItem item, string data) { bool result = Parse(item, data); if (expected != result) { throw new AssertFailedException( String.Format( "Checking for [{0}] failed. Expected:<{1}>. Actual:<{2}>.", data.ToDisplay(), expected, !expected)); } }
/// <summary> /// Returns true only if all input data has been successfully parsed. /// </summary> public static bool ParseFull(this SyntacticItem item, SyntacticState state) { bool parsed = item.Parse(state); if (!parsed) { return(false); } if (!state.IsEndOfData) { return(false); } return(true); }
/// <summary> /// Tries to parse specified data as a syntactic item. /// </summary> public static bool TryParse(SyntacticItem item, string data) { LexicalState lexicalState = new LexicalState(data); if (!Input.S.ParseFull(lexicalState)) { return(false); } SyntacticState syntacticState = new SyntacticState( lexicalState.ExtractTokens(), data); if (!item.ParseFull(syntacticState)) { return(false); } return(true); }
/// <summary> /// Initializes a new instance. /// </summary> public Optional(SyntacticItem item) : base(item, Empty.S) { }
/// <summary> /// Tries to parses specified data string into syntactic item. /// </summary> protected override bool Parse(SyntacticItem item, string data) { return(CssParser.TryParse(item, data)); }
/// <summary> /// Initializes a new instance. /// </summary> public ParseMany(SyntacticItem part) : this(part, null) { }
/// <summary> /// Initializes a new instance. /// </summary> public ParseMany(SyntacticItem part, SyntacticItem delimiter) { m_part = part; m_delimiter = delimiter; }
/// <summary> /// Tries to parses specified data string into syntactic item. /// </summary> protected abstract bool Parse(SyntacticItem item, string data);