Esempio n. 1
0
        void selector(out Selector sel)
        {
            sel = new Selector();
            SimpleSelector ss = null;
            Combinator?    cb = null;

            simpleselector(out ss);
            sel.SimpleSelectors.Add(ss);
            while (la.kind == 4)
            {
                Get();
            }
            while (StartOf(12))
            {
                if (la.kind == 29 || la.kind == 30 || la.kind == 31)
                {
                    if (la.kind == 29)
                    {
                        Get();
                        cb = Combinator.PrecededImmediatelyBy;
                    }
                    else if (la.kind == 30)
                    {
                        Get();
                        cb = Combinator.ChildOf;
                    }
                    else
                    {
                        Get();
                        cb = Combinator.PrecededBy;
                    }
                }
                while (la.kind == 4)
                {
                    Get();
                }
                simpleselector(out ss);
                if (cb.HasValue)
                {
                    ss.Combinator = cb.Value;
                }
                sel.SimpleSelectors.Add(ss);

                cb = null;
                while (la.kind == 4)
                {
                    Get();
                }
            }
        }
Esempio n. 2
0
        void simpleselector(out SimpleSelector ss)
        {
            ss = new SimpleSelector();
            string psd = null;

            CssConvert.CssParser.Attribute atb = null;
            SimpleSelector parent = ss;
            string         ident  = null;

            if (StartOf(3))
            {
                identity(out ident);
                ss.ElementName = ident;
            }
            else if (la.kind == 32)
            {
                Get();
                ss.ElementName = "*";
            }
            else if (StartOf(13))
            {
                if (la.kind == 33)
                {
                    Get();
                    identity(out ident);
                    ss.ID = ident;
                }
                else if (la.kind == 34)
                {
                    Get();
                    identity(out ident);
                    ss.Class = ident;
                }
                else if (la.kind == 35)
                {
                    attrib(out atb);
                    ss.Attribute = atb;
                }
                else
                {
                    pseudo(out psd);
                    ss.Pseudo = psd;
                }
            }
            else
            {
                SynErr(54);
            }
            while (StartOf(13))
            {
                SimpleSelector child = new SimpleSelector();
                if (la.kind == 33)
                {
                    Get();
                    identity(out ident);
                    child.ID = ident;
                }
                else if (la.kind == 34)
                {
                    Get();
                    identity(out ident);
                    child.Class = ident;
                }
                else if (la.kind == 35)
                {
                    attrib(out atb);
                    child.Attribute = atb;
                }
                else
                {
                    pseudo(out psd);
                    child.Pseudo = psd;
                }
                parent.Child = child;
                parent       = child;
            }
        }