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 Process() { var res = new MajorSegmentList(); foreach (var token in tokens) { if (FieldSegment.GetType(token.Keyname) != Field.Type.NONE) { res.Add(new FieldSegment(token.Keyname, token.Data, FieldSegment.GetType(token.Keyname))); } else if (KeywordSegment.GetType(token.Keyname) != Keyword.Type.NONE) { if (KeywordSegment.IsEquality(token.Data)) { res.Add(new EqKeyword(token.Keyname, token.Data, KeywordSegment.GetType(token.Keyname))); } else { res.Add(new FixedKeyword(token.Keyname, token.Data, KeywordSegment.GetType(token.Keyname))); } } else { res.Add(new ExpressionSegment(token.Keyname, token.Data)); } } segms = res; }