Home | History | Annotate | Download | only in AST
      1 class Tag<string spelling> {
      2   string Spelling = spelling;
      3   bit EndTagOptional = 0;
      4   bit EndTagForbidden = 0;
      5 }
      6 
      7 def Em      : Tag<"em">;
      8 def Strong  : Tag<"strong">;
      9 def Tt      : Tag<"tt">;
     10 def I       : Tag<"i">;
     11 def B       : Tag<"b">;
     12 def Big     : Tag<"big">;
     13 def Small   : Tag<"small">;
     14 def Strike  : Tag<"strike">;
     15 def S       : Tag<"s">;
     16 def U       : Tag<"u">;
     17 def Font    : Tag<"font">;
     18 def A       : Tag<"a">;
     19 def Hr      : Tag<"hr"> { let EndTagForbidden = 1; }
     20 def Div     : Tag<"div">;
     21 def Span    : Tag<"span">;
     22 def H1      : Tag<"h1">;
     23 def H2      : Tag<"h2">;
     24 def H3      : Tag<"h3">;
     25 def H4      : Tag<"h4">;
     26 def H5      : Tag<"h5">;
     27 def H6      : Tag<"h6">;
     28 def Code    : Tag<"code">;
     29 def Blockquote : Tag<"blockquote">;
     30 def Sub     : Tag<"sub">;
     31 def Sup     : Tag<"sup">;
     32 def Img     : Tag<"img"> { let EndTagForbidden = 1; }
     33 def P       : Tag<"p"> { let EndTagOptional = 1; }
     34 def Br      : Tag<"br"> { let EndTagForbidden = 1; }
     35 def Pre     : Tag<"pre">;
     36 def Ins     : Tag<"ins">;
     37 def Del     : Tag<"del">;
     38 def Ul      : Tag<"ul">;
     39 def Ol      : Tag<"ol">;
     40 def Li      : Tag<"li"> { let EndTagOptional = 1; }
     41 def Dl      : Tag<"dl">;
     42 def Dt      : Tag<"dt"> { let EndTagOptional = 1; }
     43 def Dd      : Tag<"dd"> { let EndTagOptional = 1; }
     44 def Table   : Tag<"table">;
     45 def Caption : Tag<"caption">;
     46 def Thead   : Tag<"thead"> { let EndTagOptional = 1; }
     47 def Tfoot   : Tag<"tfoot"> { let EndTagOptional = 1; }
     48 def Tbody   : Tag<"tbody"> { let EndTagOptional = 1; }
     49 def Colgroup : Tag<"colgroup"> { let EndTagOptional = 1; }
     50 def Col     : Tag<"col"> { let EndTagForbidden = 1; }
     51 def Tr      : Tag<"tr"> { let EndTagOptional = 1; }
     52 def Th      : Tag<"th"> { let EndTagOptional = 1; }
     53 def Td      : Tag<"td"> { let EndTagOptional = 1; }
     54 
     55 // Define a blacklist of attributes that are not safe to pass through to HTML
     56 // output if the input is untrusted.
     57 //
     58 // FIXME: this should be a whitelist.  When changing this to a whitelist, don't
     59 // forget to change the default in the TableGen backend.
     60 class Attribute<string spelling> {
     61   string Spelling = spelling;
     62   bit IsSafeToPassThrough = 1;
     63 }
     64 class EventHandlerContentAttribute<string spelling> : Attribute<spelling> {
     65   let IsSafeToPassThrough = 0;
     66 }
     67 
     68