public bool LastFinished(Token token, bool knowLast = false) { if (this.Count() == 0) { return(true); } var last = this.Last; if (FieldSegment.GetType(last.Keyname) != Field.Type.NONE) { return(true); } if (last.Data == "") { return(false); } if (knowLast) { if (token.CannotCloseWith()) { return(false); } } var lastsym = last.Data[last.Data.Length - 1]; if (BracketProcessor.IsValidEnd(lastsym) && BracketProcessor.BracketCheck(last.Data) != BracketProcessor.ERRORTYPE.UNCLOSED) { return(true); } return(false); }
public void Freeze() { if (BracketProcessor.BracketCheck(Data) != BracketProcessor.ERRORTYPE.OK) { throw new ParsingException("Invalid brackets in `" + Data + "`"); } frozen = true; if (string.IsNullOrEmpty(Data)) { this.type = PostTokenType.VOID; } else if (Data.Contains("=")) { this.type = PostTokenType.EQUALITY; } else { this.type = PostTokenType.EXPRESSION; } }