Beispiel #1
0
        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);
        }
Beispiel #2
0
        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;
        }