Ejemplo n.º 1
0
    public static void Main(string [] args)
    {
        var tp = new TrivialParser();

        tp.Run(args);
    }
Ejemplo n.º 2
0
	public static void Main (string [] args)
	{
		var tp = new TrivialParser ();
		tp.Run (args);
		
	}
Ejemplo n.º 3
0
    public void Generate(string extraAttribute)
    {
        var copy       = decls;
        var properties = (from d in copy
                          let sel = d.selector
                                    where sel.StartsWith("set") && sel.EndsWith(":") && Count(sel, ':') == 1
                                    let getter1 = Char.ToLower(sel [3]) + sel.Substring(4).Trim(':')
                                                  let getter2 = "is" + sel.Substring(3).Trim(':')
                                                                let getter = HasGetter(getter1, getter2)
                                                                             where getter != null
                                                                             let r = Remove(sel)
                                                                                     select getter).ToList();

        foreach (var d in decls)
        {
            if (ignore.Contains(d.selector) || properties.Contains(d.selector))
            {
                continue;
            }

            if (extraAttribute != null)
            {
                gencs.WriteLine("\t\t[{0}]", extraAttribute);
            }
            if (d.is_abstract)
            {
                gencs.WriteLine("\t\t[Abstract]");
            }
            if (d.is_static)
            {
                gencs.WriteLine("\t\t[Static]");
            }
            if (d.appearance)
            {
                gencs.WriteLine("\t\t[Appearance]");
            }
            gencs.WriteLine("\t\t[Export (\"{0}\")]", d.selector);
            gencs.WriteLine("\t\t{0} {1} ({2});", d.retval, TrivialParser.AsMethod(TrivialParser.CleanSelector(d.selector)), d.parameters);
            gencs.WriteLine();
        }

        if (properties.Count > 0)
        {
            gencs.WriteLine("\t\t//Detected properties");
        }
        foreach (var d in properties)
        {
            var decl = (from x in decls where x.selector == d select x).FirstOrDefault();
            var sel  = decl.selector;
            if (sel.StartsWith("is"))
            {
                sel = Char.ToLower(sel [2]) + sel.Substring(3);
            }

            if (decl.is_abstract)
            {
                gencs.WriteLine("\t\t[Abstract]");
            }
            if (decl.is_static)
            {
                gencs.WriteLine("\t\t[Static]");
            }
            gencs.WriteLine("\t\t[Export (\"{0}\")]", sel);
            gencs.WriteLine("\t\t{0} {1} {{ {2}get; set; }}", decl.retval, TrivialParser.AsMethod(sel),
                            d.StartsWith("is") ? "[Bind (\"" + d + "\")]" : "");
            gencs.WriteLine();
        }
    }