1*bdd1243dSDimitry Andricinclude "llvm/Option/OptParser.td" 2*bdd1243dSDimitry Andric 3*bdd1243dSDimitry Andric// link.exe accepts options starting with either a dash or a slash. 4*bdd1243dSDimitry Andric 5*bdd1243dSDimitry Andric// Flag that takes no arguments. 6*bdd1243dSDimitry Andricclass F<string name> : Flag<["/", "-", "/?", "-?"], name>; 7*bdd1243dSDimitry Andric 8*bdd1243dSDimitry Andric// Flag that takes one argument after ":". 9*bdd1243dSDimitry Andricclass P<string name> : 10*bdd1243dSDimitry Andric Joined<["/", "-", "/?", "-?"], name#":">; 11*bdd1243dSDimitry Andric 12*bdd1243dSDimitry Andric// Boolean flag which can be suffixed by ":no". Using it unsuffixed turns the 13*bdd1243dSDimitry Andric// flag on and using it suffixed by ":no" turns it off. 14*bdd1243dSDimitry Andricmulticlass B_priv<string name> { 15*bdd1243dSDimitry Andric def "" : F<name>; 16*bdd1243dSDimitry Andric def _no : F<name#":no">; 17*bdd1243dSDimitry Andric} 18*bdd1243dSDimitry Andric 19*bdd1243dSDimitry Andricdef export : P<"export">; 20*bdd1243dSDimitry Andricdef alternatename : P<"alternatename">; 21*bdd1243dSDimitry Andricdef incl : Joined<["/", "-", "/?", "-?"], "include:">;