示例#1
0
        public static bool IsSpliceListSequence(Token token, out Token.Operator op2, out Token body)
        {
            var _op1 = token as Token.Operator;

            if (_op1 != null && string.Equals(_op1.name, "..", StringComparison.InvariantCulture))
            {
                var _op2 = _op1.Next as Token.Operator;
                if (_op2 != null && string.Equals(_op2.name, "$", StringComparison.InvariantCulture) && _op2.Next != null)
                {
                    op2  = _op2;
                    body = _op2.Next;
                    return(true);
                }
            }
            op2  = null;
            body = null;
            return(false);
        }
示例#2
0
        public static bool IsQuotationWithHeader(Token.QuoteGroup group, out Token.Identifier type, out Token.Operator colon, out Token body)
        {
            var content = group.Child as Token.LooseGroup;

            if (content != null)
            {
                var _type = content.Child as Token.Identifier;
                if (_type != null && _quotationTypes.Contains(_type.name))
                {
                    var _colon = _type.Next as Token.Operator;
                    if (_colon != null && string.Equals(_colon.name, ":", StringComparison.InvariantCulture))
                    {
                        type  = _type;
                        colon = _colon;
                        body  = _colon.Next;
                        return(true);
                    }
                }
            }
            type  = null;
            colon = null;
            body  = null;
            return(false);
        }