Annotation of Amaya/amaya/HTML.S, revision 1.130

1.116     cvs         1:                { I. Vatton      November 1994-2001  }
1.68      cvs         2: 
1.1       cvs         3: STRUCTURE HTML;
                      4: 
                      5: DEFPRES HTMLP;
1.44      cvs         6: 
1.1       cvs         7: ATTR
1.59      cvs         8:                        { coreattrs }
1.63      cvs         9:    ID = Text;                  { id }
                     10:    Class = Text;               { class }
                     11:    PseudoClass = Text;
                     12:    Style\240 = Text;           { style }
                     13:    Title = Text;               { title }
1.59      cvs        14:                        { i18n }
                     15:    dir = ltr, rtl;             { dir }
                     16:                        { events }
1.63      cvs        17:    onclick = Text;             { onclick }
                     18:    ondblclick = Text;          { ondblclick }
                     19:    onmousedown = Text;         { onmousedown }
                     20:    onmouseup = Text;           { onmouseup }
                     21:    onmouseover = Text;         { onmouseover }
                     22:    onmousemove = Text;         { onmousemove }
                     23:    onmouseout = Text;          { onmouseout }
                     24:    onkeypress = Text;          { onkeypress }
                     25:    onkeydown = Text;           { onkeydown }
                     26:    onkeyup = Text;             { onkeyup }
1.59      cvs        27: 
1.63      cvs        28:    Invalid_attribute = Text;
1.127     cvs        29:    Unknown_attribute = Text;
1.63      cvs        30:    Ghost_restruct = Text;
1.114     cvs        31:    Highlight = Yes_;    { to show the HTML element corresponding to the
                     32:                          current selection in the source view }
1.100     cvs        33:    IntEntity = Yes_;   { do not translate & into & in output file }
                     34:    EntityName = Text;   { the content of the element is the name of an entity }
1.110     cvs        35:    xml_space = xml_space_default, xml_space_preserve; { xml:space }
1.1       cvs        36: 
                     37: CONST
1.59      cvs        38: 
1.1       cvs        39:    C_Empty = ' ';
                     40:    C_Foot = ' ';
                     41:    C_Head = ' ';
1.64      cvs        42:    C_BR   = '\12';
1.1       cvs        43: 
                     44: STRUCT
1.59      cvs        45: 
1.63      cvs        46:   HTML                                                         { HTML }
1.65      cvs        47:      (ATTR SectionNumbering = Yes_; ShowAreas = Yes_;
1.109     cvs        48:           PrintURL = Yes_; HtmlDTD = Text;
1.101     cvs        49:           Namespaces = Text; RealLang = Yes_; Charset = Text) =
1.17      cvs        50:        BEGIN
1.1       cvs        51:        HEAD;
1.109     cvs        52:       ? BODY;  { only one of BODY, document type }
1.72      cvs        53:       ? FRAMESET;
1.127     cvs        54:        END + (Invalid_element, Unknown_namespace, Comment\240, XMLPI);
1.1       cvs        55: 
1.59      cvs        56:   BODY                                                         { BODY }
1.63      cvs        57:      (ATTR onload = Text; onunload = Text;
                     58:         { onload         onunload }
                     59:           background_ = Text; BackgroundColor = Text;
                     60:         { background          bgcolor }
                     61:           TextColor = Text; LinkColor = Text;
                     62:          { text              link }
                     63:           VisitedLinkColor = Text; ActiveLinkColor = Text) =
                     64:          { vlink                    alink }
                     65:        LIST OF (Element) + (INS, DEL);
1.1       cvs        66: 
1.11      cvs        67:   Invalid_element (ATTR Error_type = UnknownTag, BadPosition) = TEXT;
1.113     cvs        68: 
1.127     cvs        69:   Unknown_namespace = TEXT;
                     70: 
1.1       cvs        71:   Comment\240 = LIST OF (Comment_line = TEXT);
                     72: 
1.113     cvs        73:   XMLPI = LIST OF (PI_line = TEXT);
                     74:        
1.77      cvs        75:   Head_misc =
                     76:        CASE OF
                     77:        STYLE_;
                     78:        SCRIPT;
                     79:        META;
                     80:        LINK;
                     81:        END;
1.63      cvs        82:   HEAD                                                         { HEAD }
                     83:      (ATTR profile = Text) =
                     84:        AGGREGATE
1.77      cvs        85:        Document_URL = TEXT - (Head_misc);
1.81      cvs        86:        TITLE = TEXT - (Head_misc);                             { TITLE }
1.63      cvs        87:       ? ISINDEX (ATTR Prompt = Text) = CONSTANT C_Empty;       { ISINDEX }
                     88:                    { prompt }
                     89:       ? BASE;                                                  { BASE }
1.77      cvs        90:        END + (Object, Head_misc);
1.63      cvs        91: 
1.64      cvs        92:   STYLE_                                                       { STYLE }
                     93:      (ATTR Notation = Text; media = Text) =
                     94:         { type             media }
                     95:         TEXT;
                     96: 
1.63      cvs        97:   SCRIPT                                                       { SCRIPT }
                     98:      (ATTR charset = Text; !content_type = Text;
                     99:         { charset          type }
                    100:           script_language = Text; script_src = Text;
                    101:         { language                src }
                    102:           defer = Yes_; event = Text; for_ = Text) =
                    103:         { defer         event         for }
                    104:        TEXT;
1.59      cvs       105: 
                    106:   META                                                         { META }
1.63      cvs       107:      (ATTR http_equiv = Text;
                    108:         { http-equiv }
1.96      cvs       109:           meta_name = Text; meta_content = Text;
                    110:          { name              content }
1.63      cvs       111:           scheme = Text) =
                    112:         { scheme }
                    113:        CONSTANT C_Empty;
1.1       cvs       114: 
1.63      cvs       115:   LINK                                                         { LINK }
                    116:      (ATTR charset; HREF_ = Text; hreflang = Text;
                    117:         { charset  href          hreflang }
                    118:           Link_type = Text; REL = Text; REV = Text;
                    119:         { type              rel         rev }
                    120:           media; target_ = Text) =
                    121:         { media  target }
                    122:        CONSTANT C_Empty;
                    123: 
                    124:   BASE                                                         { BASE }
                    125:      (ATTR !HREF_; target_) =
                    126:          { href   target }
                    127:        CONSTANT C_Empty;
1.1       cvs       128: 
1.59      cvs       129:   Element = CASE OF                                            { block }
                    130:        Paragraph;                                              { P }
1.20      cvs       131:        Pseudo_paragraph;
1.59      cvs       132:        Heading;                                                { heading }
                    133:        List_;                                                  { list + DL }
                    134:        Preformatted;                                           { PRE preformatted }
                    135:        Division;                                               { DIV }
                    136:        Center;                                                 { CENTER }
1.62      cvs       137:        NOSCRIPT = LIST OF (Element);                           { NOSCRIPT }
1.63      cvs       138:        Block_Quote;                                            { BLOCKQUOTE }
1.59      cvs       139:        Form;                                                   { FORM }
                    140:        ISINDEX;                                                { ISINDEX }
1.63      cvs       141:        Horizontal_Rule;                                        { HR }
1.59      cvs       142:        Table;                                                  { TABLE }
                    143:        Address = LIST OF (AddressContent);                     { ADDRESS }
                    144:        PICTURE                                                 { IMG }
1.63      cvs       145:            (ATTR SRC = Text; ALT = Text; longdesc = Text;
                    146:                { src         alt         longdesc }
1.129     vatton    147:                  Height_ = Text; Width__ = Text;
1.59      cvs       148:                { height             width }
1.63      cvs       149:                  IntWidthPercent = Integer; IntWidthPxl = Integer;
1.129     vatton    150:                  IntHeightPercent = Integer; IntHeightPxl = Integer;
1.94      cvs       151:                  USEMAP = Text; ISMAP = Yes_;
1.63      cvs       152:                { usemap         ismap }
1.94      cvs       153:                 IsInput = Yes_;    NAME = Text;
                    154:                { input type=IMAGE  name }
1.63      cvs       155:                  Alignment = Top_, Middle_, Bottom_, Left_, Right_;
                    156:                { align       top   middle   bottom   left   right }
                    157:                  Img_border = Integer;
                    158:                { border }
                    159:                  hspace = Integer; vspace = Integer);
                    160:                { hspace            vspace }
1.59      cvs       161:        Object;                                                 { OBJECT }
1.60      cvs       162:        Applet;                                                 { APPLET }
1.108     cvs       163:        MathML;                                                 { MATH }
1.126     vatton    164:         SVG;                                                   { SVG }
1.125     vatton    165:        map; MAP;                                               { MAP }
1.111     kahan     166:        XLink;                                                  { Annotations }
1.123     cvs       167:        SVG_Image                                               { GRAPHIC }
                    168:            (ATTR SRC; ALT; longdesc;
                    169:                { src  alt  longdesc }
                    170:                  Height_; Width__;
                    171:                { height   width }
                    172:                  IntWidthPercent; IntWidthPxl;
1.129     vatton    173:                  IntHeightPercent; IntHeightPxl;
1.123     cvs       174:                  USEMAP; ISMAP;
                    175:                { usemap  ismap }
                    176:                 IsInput;    NAME;
                    177:                { input type=IMAGE  name }
                    178:                  Alignment;
                    179:                { align   top   middle   bottom   left   right }
                    180:                  Img_border;
                    181:                { border }
                    182:                  hspace; vspace) =
                    183:                { hspace  vspace }
                    184:                 SVG_ImageContent;
1.126     vatton    185:        SVG_ImageContent  = SVG;
1.128     cvs       186:        Embed                                           { EMBED }
                    187:            (ATTR SRC;
                    188:                  Alignment;
                    189:                { align   top   bottom   left   right }
                    190:                  Height_; Width__;
                    191:                { height   width }
                    192:                  EmbedHidden = Yes_, No_;
                    193:                { hidden  yes   no }
                    194:                  EmbedName = Text ;
                    195:                { name }
                    196:                  hspace; vspace) =
                    197:                { hspace  vspace }
                    198:                 EmbedContent;
                    199:        Embed_Content  = MathML;
1.1       cvs       200:        END;
                    201: 
1.52      cvs       202:        HTMLfragment = LIST OF (Element);
                    203: 
1.63      cvs       204:   Block_Quote                                                  { BLOCKQUOTE }
                    205:      (ATTR cite = Text;
                    206:         { cite }
                    207:           InternalLink = Reference(Any); ExternalLink = Yes_) =
                    208:        LIST OF (Element);
                    209: 
                    210:   Horizontal_Rule                                              { HR }
                    211:      (ATTR Align = left_, center_, right_;
                    212:         { align   left   center   right }
                    213:           NoShade = NoShade_; Size_ = Integer; Width__;
                    214:         { noshade             size             width }
                    215:           IntWidthPercent; IntWidthPxl) =
                    216:        CONSTANT C_Empty;
                    217: 
1.67      cvs       218:   Basic_Set = LIST OF (Basic_Elem);
                    219: 
1.1       cvs       220:   AddressContent = CASE OF
                    221:        Basic_Elem;
1.59      cvs       222:        Paragraph;              { P }
1.20      cvs       223:        Pseudo_paragraph;
1.1       cvs       224:        END;
                    225: 
1.59      cvs       226:   Paragraph                                                    { P }
1.63      cvs       227:      (ATTR TextAlign = left_, center_, right_, justify_) =
                    228:         { align       left   center   right   justify }
                    229:        Basic_Set;
                    230: 
1.59      cvs       231:   Pseudo_paragraph = Basic_Set;
                    232: 
                    233:   Heading = CASE OF                                            { heading }
                    234:        H1 (ATTR TextAlign) = Basic_Set;                        { H1 }
                    235:               { align }
                    236:        H2 (ATTR TextAlign) = Basic_Set;                        { H2 }
                    237:        H3 (ATTR TextAlign) = Basic_Set;                        { H3 }
                    238:        H4 (ATTR TextAlign) = Basic_Set;                        { H4 }
                    239:        H5 (ATTR TextAlign) = Basic_Set;                        { H5 }
                    240:        H6 (ATTR TextAlign) = Basic_Set;                        { H6 }
1.1       cvs       241:        END;
                    242: 
1.63      cvs       243:   Preformatted                                                 { PRE }
                    244:      (ATTR Width__; IntWidthPercent; IntWidthPxl) =
                    245:         { width }
                    246:        Basic_Set
1.59      cvs       247:             - (PICTURE, Object, Applet,
                    248:                Big_text, Small_text, Subscript, Superscript,
1.123     cvs       249:                Font_, BaseFont, SVG_Image);
1.59      cvs       250: 
1.63      cvs       251:   Anchor                                                       { A }
1.94      cvs       252:      (ATTR charset; Link_type; NAME;
1.63      cvs       253:         { charset  type       name }
                    254:           HREF_; hreflang; target_;
                    255:         { href   hreflang  target}
                    256:           REL; REV; accesskey = Text;
                    257:         { rel  rev  accesskey }
                    258:           shape = rectangle, circle, polygon, default_;
                    259:         { shape   rect       cirecle poly     default }
                    260:           coords = Text; tabindex = Integer;
                    261:         { coords         tabindex }
                    262:           onfocus = Text; onblur = Text;
1.76      cvs       263:         { onfocus         onblur }
1.89      cvs       264:           InternalLink; ExternalLink;
1.112     kahan     265:         { InternalLink  ExternalLink }) =
1.63      cvs       266:        Basic_Set;
1.1       cvs       267: 
1.63      cvs       268:   Basic_Elem = CASE OF                                         { special }
1.1       cvs       269:         TEXT;
1.63      cvs       270:        Font;                                                   { fontstyle }
                    271:        Phrase;                                                 { phrase }
1.61      cvs       272:        Anchor;                                                 { A }
                    273:        PICTURE;                                                { IMG }
                    274:        Applet;                                                 { APPLET }
                    275:        Font_;                                                  { FONT }
                    276:        BaseFont;                                               { BASEFONT }
1.63      cvs       277:        BR;                                                     { BR }
1.61      cvs       278:        SCRIPT;                                                 { SCRIPT }
1.63      cvs       279:        Quotation;                                              { Q }
1.61      cvs       280:        Subscript = Basic_Set;                                  { SUB }
                    281:        Superscript = Basic_Set;                                { SUP }
                    282:        Span = Basic_Set;                                       { SPAN }
                    283:        BDO = Basic_Set;                                        { BDO }
1.77      cvs       284:        Object;                                                 { OBJECT }
1.128     cvs       285:        Embed;                                                  { EMBED }
1.61      cvs       286:        IFRAME;                                                 { IFRAME }
1.121     cvs       287:        ruby;                                                   { ruby }
1.108     cvs       288:        MathML;                                                 { MATH }
1.111     kahan     289:        XLink;                                                  { Annotations }
1.123     cvs       290:        SVG_Image;                                              { GRAPHIC }
1.59      cvs       291:        END;
                    292: 
1.60      cvs       293:   BaseFont                                                     { BASEFONT }
1.63      cvs       294:      (ATTR BaseFontSize = Integer; BaseFontColor = Text;
                    295:         { size                    color }
                    296:           BaseFontFace = Text) =
                    297:          { face }
                    298:        CONSTANT C_Empty;
                    299: 
                    300:   BR                                                           { BR }
1.97      cvs       301:      (ATTR Clear = Left_, Right_, All_, None_) =
1.63      cvs       302:         { clear   left   right   all   none }
                    303:        CONSTANT C_BR;
                    304: 
                    305:   Quotation                                                    { Q }
                    306:      (ATTR cite; InternalLink; ExternalLink) =
                    307:         { cite }
                    308:        Basic_Set;
1.59      cvs       309: 
1.60      cvs       310:   Font = CASE OF               { fontstyle }
                    311:        Teletype_text = Basic_Set;      { TT }
1.59      cvs       312:        Italic_text = Basic_Set;        { I }
                    313:        Bold_text = Basic_Set;          { B }
                    314:        Underlined_text = Basic_Set;    { U }
1.60      cvs       315:        Struck_text = Basic_Set;        { S or STRIKE }
1.59      cvs       316:        Big_text = Basic_Set;           { BIG }
                    317:        Small_text = Basic_Set;         { SMALL }
                    318:        END;
                    319: 
1.60      cvs       320:   Phrase = CASE OF             { phrase }
1.59      cvs       321:        Emphasis = Basic_Set;           { EM }
                    322:        Strong = Basic_Set;             { STRONG }
                    323:        Def = Basic_Set;                { DFN }
                    324:        Code = Basic_Set;               { CODE }
                    325:        Sample = Basic_Set;             { SAMP }
                    326:        Keyboard = Basic_Set;           { KBD }
                    327:        Variable = Basic_Set;           { VAR }
                    328:        Cite = Basic_Set;               { CITE }
1.60      cvs       329:        ABBR = Basic_Set;               { ABBR }
                    330:         ACRONYM = Basic_Set;           { ACRONYM }
1.59      cvs       331:        END;
                    332: 
1.63      cvs       333:   Font_                                                                { FONT }
                    334:      (ATTR Font_size = Text; color = Text; face = Text;
                    335:         { size              color            face }
                    336:           IntSizeIncr = Integer; IntSizeDecr = Integer;
                    337:           IntSizeRel = Integer) =
                    338:        Basic_Set;
                    339: 
                    340:   Applet                                                       { APPLET }
                    341:      (ATTR codebase = Text; archive = Text; code = Text;
                    342:         { codebase         archive         code }
                    343:           object = Text; alt = Text; applet_name = Text;
                    344:         { object         alt         name }
1.129     vatton    345:           Width__; IntWidthPercent; IntWidthPxl;
                    346:            Height_; IntHeightPercent; IntHeightPxl;
1.63      cvs       347:         { width    height }
                    348:           Alignment; hspace; vspace) =
                    349:         { align      hspace  vspace }
1.1       cvs       350:        LIST OF (Applet_Content = CASE OF
1.59      cvs       351:                                  Parameter;                    { PARAM }
1.1       cvs       352:                                  Basic_Set;
                    353:                                  END);
1.63      cvs       354:   Parameter                                                    { PARAM }
                    355:      (ATTR Param_name = Text; Param_value = Text;
                    356:         { name               value }
                    357:           valuetype = data_, ref, object_;
                    358:         { valuetype   data   ref  object }
                    359:           Param_type = Text) =
                    360:         { type }
1.59      cvs       361:        CONSTANT C_Empty;
                    362: 
                    363:   Object                                                       { OBJECT }
1.63      cvs       364:      (ATTR declare = Yes_; classid = Text; codebase;
                    365:         { declare         classid         codebase }
                    366:           data = Text; Object_type = Text;
                    367:         { data         type }
                    368:           codetype = Text; archive; standby = Text;
                    369:          { codetype         archive  standby }
1.129     vatton    370:           !Height_; !Width__;
                    371:           IntWidthPercent; IntWidthPxl; 
                    372:            IntHeightPercent; IntHeightPxl;
1.63      cvs       373:         {  height    width }
                    374:           USEMAP; NAME; tabindex; Alignment; Img_border;
                    375:         { usemap  name  tabindex  align      border }
                    376:           hspace; vspace) =
                    377:          { hspace  vspace }
1.10      cvs       378:        BEGIN
1.13      cvs       379:        PICTURE;
1.10      cvs       380:        Object_Content = LIST OF (CASE OF Element; Parameter; END);
1.59      cvs       381:                                                 { PARAM }
1.129     vatton    382:        END with Height_ ?= '400', Width__ ?= '400',
                    383:                 IntWidthPxl ?= 400, IntHeightPxl ?= 400;
1.61      cvs       384: 
1.63      cvs       385:   INS                                                          { INS }
1.72      cvs       386:      (ATTR cite; datetime = Text; InternalLink; ExternalLink) =
1.63      cvs       387:         { cite  datetime }
                    388:        Basic_Set;
                    389: 
                    390:   DEL                                                          { DEL }
1.72      cvs       391:      (ATTR cite; datetime; InternalLink; ExternalLink) =
1.63      cvs       392:         { cite  datetime }
                    393:        Basic_Set;
1.1       cvs       394: 
1.59      cvs       395:   Block = CASE OF                                              { block }
                    396:        Paragraph;                                              { P }
1.20      cvs       397:        Pseudo_paragraph;
1.59      cvs       398:        Heading;                                                { heading }
                    399:        List_;                                                  { list + DL }
                    400:        Block_Quote;                                            { BLOCKQUOTE }
                    401:        Preformatted;                                           { PRE }
                    402:        Division;                                               { DIV }
1.63      cvs       403:        Center;                                                 { CENTER }
1.1       cvs       404:        Form;
1.73      cvs       405:        Horizontal_Rule;                                        { HR }
                    406:        Table;                                                  { TABLE }
                    407:        Address;                                                { ADDRESS }
1.1       cvs       408:        END;
                    409: 
1.63      cvs       410:   Division                                                     { DIV }
                    411:      (ATTR TextAlign) =
                    412:         { align }
                    413:        LIST OF (Element);
                    414: 
                    415:   Center =                                                     { CENTER }
                    416:        LIST OF (Element);
1.1       cvs       417: 
1.59      cvs       418:   List_ = CASE OF                                              { list }
1.63      cvs       419:        Unnumbered_List;                                        { UL }
                    420:        Numbered_List;                                          { OL }
                    421:        Directory;                                              { DIR }
                    422:        Menu;                                                   { MENU }
                    423:        Definition_List;                                        { DL }
                    424:        END;
                    425: 
                    426:   Unnumbered_List                                              { UL }
                    427:      (ATTR BulletStyle = disc, circle, square;
                    428:         { type          disc  circle  square }
                    429:           COMPACT = Yes_) =
                    430:         { compact }
                    431:        LIST OF (List_Item);
                    432: 
                    433:   Numbered_List                                                        { OL }
                    434:      (ATTR NumberStyle = Arabic_, LowerAlpha, UpperAlpha,
                    435:         { type          1        a           A }
                    436:           LowerRoman, UpperRoman;
                    437:         { i           I }
                    438:           Start = Integer; COMPACT) =
                    439:         { start            compact }
                    440:        LIST OF (List_Item) with Start ?= 1;
                    441: 
                    442:   Directory                                                    { DIR }
                    443:      (ATTR COMPACT) =
                    444:         { compact }
                    445:        LIST OF (List_Item);
                    446: 
                    447:   Menu                                                         { MENU }
                    448:      (ATTR COMPACT) =
                    449:         { compact }
                    450:        LIST OF (List_Item);
                    451: 
                    452:   Definition_List                                              { DL }
                    453:      (ATTR COMPACT) =
                    454:         { compact }
                    455:        LIST OF (Definition_Item);
                    456: 
                    457:   List_Item                                                    { LI }
                    458:      (ATTR ItemStyle = disc, circle, square, Arabic_,
                    459:         { type        disc  circle  square  1 }
                    460:           LowerAlpha, UpperAlpha, LowerRoman, UpperRoman;
                    461:         { a           A           i           I }
                    462:           IntItemStyle = disc, circle, square, Arabic_,
                    463:           LowerAlpha, UpperAlpha, LowerRoman, UpperRoman;
                    464:           ItemValue = Integer) =
                    465:         { value }
1.1       cvs       466:        LIST OF (Block);
                    467: 
1.59      cvs       468:   Definition_Item = BEGIN
                    469:        Term_List = LIST OF (Term = Basic_Set);                 { DT }
1.63      cvs       470:       ? Definition = LIST OF (Block);                          { DD }
1.1       cvs       471:        END;
                    472: 
1.63      cvs       473:   Form                                                         { FORM }
                    474:      (ATTR !Script_URL = Text; METHOD = Get_, Post_;
                    475:         {  action             method }
                    476:           ENCTYPE = Text; onsubmit = Text; onreset = Text;
                    477:         { enctype         onsubmit         onreset }
                    478:           target_; accept_charset = Text) =
                    479:         { target   accept-charset }
1.1       cvs       480:        LIST OF (Form_Element) + (Input) with METHOD ?= Get_;
                    481: 
                    482:   Form_Element = CASE OF
1.59      cvs       483:        Paragraph;                                              { P }
1.20      cvs       484:        Pseudo_paragraph;
1.80      cvs       485:        FIELDSET;                                               { FIELDSET }
1.59      cvs       486:        Option_Menu;                                            { SELECT }
1.63      cvs       487:        Text_Area;                                              { TEXTAREA }
1.59      cvs       488:        Heading;                                                { heading }
                    489:        List_;                                                  { list + DL }
                    490:        Horizontal_Rule;                                        { HR }
                    491:        Block_Quote;                                            { BLOCKQUOTE }
                    492:        Preformatted;                                           { PRE }
                    493:        Division;                                               { DIV }
                    494:        Table;                                                  { TABLE }
                    495:        Center;                                                 { CENTER }
                    496:        ISINDEX;                                                { ISINDEX }
1.1       cvs       497:        END;
                    498: 
1.63      cvs       499:   Option_Menu                                                  { SELECT }
                    500:      (ATTR !NAME; MenuSize = Integer; Multiple = Yes_;
                    501:         {  name  size                multiple }
                    502:            disabled = Yes_; tabindex; onfocus; onblur;
                    503:          { disabled         tabindex  onfocus  onblur}
                    504:            onchange = Text) =
                    505:          { onchange }
1.91      cvs       506:        LIST OF (Option_item = CASE OF Option; OptGroup; END) - (Input);
1.63      cvs       507: 
                    508:   Option                                                       { OPTION }
                    509:      (ATTR Selected = Yes_; DefaultSelected = Yes_;
                    510:         { selected }
                    511:           disabled; label = Text; !Value_ = Text) =
                    512:          { disabled  label          value }
1.1       cvs       513:        TEXT;
1.76      cvs       514: 
                    515:   OptGroup                                                     { OPTGROUP }
1.78      cvs       516:      (ATTR disabled; !label) =
                    517:         { disabled   label }
1.76      cvs       518:        LIST OF (Option);
1.1       cvs       519: 
1.63      cvs       520:   Text_Area                                                    { TEXTAREA }
                    521:      (ATTR !NAME; Rows = Integer; Columns = Integer;
                    522:         {  name  rows            cols }
                    523:           disabled; readonly = Yes_; tabindex; accesskey;
                    524:         { disabled  readonly         tabindex  accesskey  }
                    525:           onfocus; onblur; onselect = Text; onchange;
                    526:         { onfocus  onblur  onselect         onchange }
                    527:           Default_Value = Text) =
1.68      cvs       528:        Text_With_Frame - (Input) with Rows ?= 4, Columns ?= 20;
1.63      cvs       529: 
1.79      cvs       530:   FIELDSET =                                                   { FIELDSET }
                    531:        BEGIN
                    532:        LEGEND;
                    533:        Basic_Set;
                    534:        END;
                    535: 
                    536:   LEGEND                                                       { LEGEND }
                    537:      (ATTR accesskey; LAlign = Top_, Bottom_, Left_, Right_) =
                    538:         { accesskey  align    top   bottom   left   right }
                    539:        Basic_Set;
                    540: 
1.62      cvs       541:   Input = CASE OF                                      { formctrl }
1.63      cvs       542:        Text_Input                                      { INPUT / TEXT }
                    543:           (ATTR !NAME; Value_; disabled; readonly;
                    544:                { name  value   disabled  readonly }
                    545:                  Area_Size = Integer; MaxLength = Integer;
                    546:                { size                 maxlength }
                    547:                  tabindex; accesskey;
                    548:                { tabindex  accesskey }
1.66      cvs       549:                  onfocus; onblur; onselect; onchange;
1.63      cvs       550:                { onfocus  onblur  onselect  onchange }
1.66      cvs       551:                  Default_Value) =
1.68      cvs       552:                Text_With_Frame - (Input) with Area_Size ?= 20;
1.63      cvs       553:        Password_Input                                  { INPUT / PASSWORD }
1.66      cvs       554:           (ATTR !NAME; Value_; disabled; readonly;
                    555:                { name  value   disabled  readonly }
1.63      cvs       556:                  Area_Size; MaxLength;
                    557:                { size       maxlength }
1.66      cvs       558:                  tabindex; accesskey;
                    559:                { tabindex  accesskey }
                    560:                  onfocus; onblur; onselect; onchange;
                    561:                { onfocus  onblur  onselect  onchange }
                    562:                  Default_Value) =
1.68      cvs       563:                Text_With_Frame  - (Input) with Area_Size ?= 20;
                    564:        File_Input                                      { INPUT / FILE }
                    565:           (ATTR !NAME; Value_; disabled; readonly;
                    566:                { name  value   disabled  readonly }
                    567:                  Area_Size; MaxLength;
                    568:                { size       maxlength }
                    569:                  tabindex; accesskey;
                    570:                { tabindex  accesskey }
                    571:                  onfocus; onblur; accept = Text;
                    572:                { onfocus  onblur }
                    573:                  Default_Value) =
                    574:                Text_With_Frame - (Input) with Area_Size ?= 20;
1.59      cvs       575:        Checkbox_Input                                  { INPUT / CHECKBOX }
1.63      cvs       576:           (ATTR !NAME; Value_; Checked = Yes_, No_;
1.66      cvs       577:                { name  value   checked }
1.63      cvs       578:                  disabled; readonly;
                    579:                { disabled  readonly }
                    580:                  tabindex; accesskey; onfocus; onblur;
                    581:                { tabindex  accesskey  onfocus  onblur }
                    582:                  DefaultChecked = Yes_, No_) =
1.1       cvs       583:                CONSTANT C_Empty with Checked ?= No_;
1.59      cvs       584:        Radio_Input                                     { INPUT / RADIO }
1.63      cvs       585:           (ATTR !NAME; !Value_; Checked; disabled;
                    586:                { name  value    checked   disabled }
                    587:                  readonly; tabindex; accesskey;
                    588:                { readonly  tabindex  accesskey }
                    589:                  onfocus; onblur;
                    590:                { onfocus  onblur }
                    591:                  DefaultChecked) =
                    592:                CONSTANT C_Empty with Checked ?= No_,
                    593:                                      NAME ?= 'radio';
                    594:        Submit_Input                                    { INPUT / SUBMIT }
                    595:           (ATTR  NAME; Value_; disabled; readonly;
                    596:                { name  value   disabled; readonly }
                    597:                  tabindex; accesskey;
                    598:                { tabindex  accesskey }
                    599:                  onfocus; onblur) =
                    600:                { onfocus  onblur }
                    601:                BEGIN
1.99      cvs       602:                CONSTANT C_Empty;
1.63      cvs       603:                END with Value_ ?= 'Submit';
                    604:        Reset_Input                                     { INPUT / RESET }
                    605:           (ATTR  NAME; Value_; disabled; readonly;
                    606:                { name  value   disabled  readonly }
                    607:                  tabindex; accesskey;
                    608:                { tabindex  accesskey }
                    609:                  onfocus; onblur) =
                    610:                { onfocus  onblur }
                    611:                BEGIN
1.99      cvs       612:                CONSTANT C_Empty;
1.68      cvs       613:                END  - (Input) with NAME ?= 'Reset',
                    614:                                    Value_ ?= 'Reset';
                    615:         Button_Input                                   { INPUT / BUTTON }
1.66      cvs       616:           (ATTR !NAME; Value_; disabled; readonly;
                    617:                { name  value   disabled  readonly }
1.63      cvs       618:                  tabindex; accesskey;
                    619:                { tabindex  accesskey }
1.68      cvs       620:                  onfocus; onblur) =
1.63      cvs       621:                { onfocus  onblur }
1.68      cvs       622:                BEGIN
1.99      cvs       623:                CONSTANT C_Empty;
1.68      cvs       624:                END;
1.79      cvs       625: 
1.120     cvs       626:         BUTTON_                                                { BUTTON }
1.68      cvs       627:           (ATTR !NAME; Value_;
                    628:                { name  value }
                    629:                  Button_type = button, submit, reset;
                    630:                { type          button  submit  reset }
                    631:                  disabled; tabindex; accesskey;
                    632:                { disabled  tabindex  accesskey }
                    633:                  onfocus; onblur) =
                    634:                { onfocus  onblur }
1.79      cvs       635:                Basic_Set - (Anchor, Input, Form, FIELDSET, IFRAME);
1.68      cvs       636:         LABEL                                          { LABEL }
                    637:           (ATTR  Associated_control = TEXT;
                    638:                { for }
                    639:                  accesskey; onfocus; onblur) =
                    640:                { accesskey  onfocus  onblur }
1.71      cvs       641:                Basic_Set;
1.63      cvs       642:        Hidden_Input                                    { INPUT / HIDDEN }
1.68      cvs       643:           (ATTR !NAME; Value_; disabled;
                    644:                { name  value   disabled }
1.63      cvs       645:                  tabindex; accesskey;
                    646:                { tabindex  accesskey }
                    647:                  onfocus; onblur) =
                    648:                { onfocus  onblur }
                    649:                CONSTANT C_Empty;
1.59      cvs       650:        Option_Menu;                                    { SELECT }
                    651:        Text_Area;                                      { TEXTAREA }
1.8       cvs       652:        END;
1.1       cvs       653: 
                    654:   Text_With_Frame = BEGIN
                    655:        Inserted_Text = TEXT;
                    656:        Frame = CONSTANT C_Empty;
                    657:        END;
                    658: 
1.63      cvs       659:   Table_row                                                    { TR }
                    660:      (ATTR Cell_align = Cell_left, Cell_center, Cell_right,
                    661:         { align        left       center       right }
                    662:                        Cell_justify, Cell_char;
                    663:         {              justify       char }
                    664:           char = Text; charoff = Text;
                    665:         { char         charoff }
                    666:           Row_valign = Row_top, Row_middle, Row_bottom, Row_baseline;
                    667:         { valign       top      middle      bottom      baseline }
1.129     vatton    668:           BackgroundColor; IntHeightPxl) =
1.71      cvs       669:         { bgcolor          Special attribute to control row span }
1.63      cvs       670:        LIST OF (Table_cell);
                    671: 
                    672:   Table                                                                { TABLE }
                    673:      (ATTR summary = Text; Width__; Border = Integer;
                    674:         { summary         width    border }
                    675:           frame = void, above, below, hsides, lhs, rhs,
                    676:         { frame   void  above  below  hsides  lhs  rhs  }
                    677:                   vsides, box, border;
                    678:         {         vsides  box  border }
1.97      cvs       679:           rules_ = none_, groups, rows, cols, all;
                    680:         { rules    none   groups  rows  cols  all }
1.63      cvs       681:           cellspacing = Integer; cellpadding = Integer;
                    682:         { cellspacing            cellpadding }
                    683:           Align; BackgroundColor;
                    684:         { align  bgcolor }
                    685:           datapagesize = Text; IntWidthPxl; IntWidthPercent) =
                    686:         { datapagesize }
1.1       cvs       687:        BEGIN
1.84      cvs       688:        CAPTION;                                                { CAPTION }
1.115     cvs       689:       ? Cols = LIST OF (Col_elem = CASE OF
1.85      cvs       690:                                COL;                            { COL }
                    691:                                COLGROUP;                       { COLGROUP }
                    692:                                END);
1.1       cvs       693:        Table_head = LIST OF (Column_head);
1.63      cvs       694:       ? thead;                                                 { THEAD }
                    695:        Table_body = LIST OF (tbody);
                    696:       ? tfoot;                                                 { TFOOT }
1.1       cvs       697:        Table_foot = CONSTANT C_Foot;
1.49      cvs       698:        END;
1.63      cvs       699: 
                    700:   CAPTION                                                      { CAPTION }
                    701:      (ATTR Position = Position_top, Position_bottom,
                    702:         { align      top           bottom }
                    703:           Position_left, Position_right) =
                    704:         { left           right }
                    705:        Basic_Set;
                    706: 
1.44      cvs       707:   Column_head (ATTR IntWidthPercent; IntWidthPxl) =
                    708:        CONSTANT C_Head;
1.63      cvs       709: 
                    710:   thead                                                                { THEAD }
                    711:      (ATTR Cell_align; char; charoff; Row_valign) =
                    712:        LIST OF (Table_row);
                    713: 
                    714:   tbody                                                                 { TBODY }
                    715:      (ATTR Cell_align; char; charoff; Row_valign) =
                    716:        LIST OF (Table_row);
                    717: 
                    718:   tfoot                                                                { TFOOT }
                    719:      (ATTR Cell_align; char; charoff; Row_valign) =
                    720:        LIST OF (Table_row);
                    721: 
1.1       cvs       722:   Table_cell = CASE OF
1.63      cvs       723:        Data_cell;                                              { TD }
                    724:        Heading_cell;                                           { TH }
                    725:        END;
                    726: 
                    727:   Data_cell                                                    { TD }
                    728:      (ATTR Ref_column = REFERENCE(Column_head);
                    729:            ColExt = REFERENCE(Column_head);
                    730:            RowExt = REFERENCE(Table_row);
                    731:           abbr = Text; axis = Text; headers = Text; scope = Text;
                    732:         { abbr         axis         headers         scope }
                    733:            rowspan_ = INTEGER; colspan_ = INTEGER;
                    734:         { rowspan             colspan }
                    735:            Cell_align; char; charoff;
                    736:         { align       char  charoff }
                    737:            Cell_valign = Cell_top, Cell_middle, Cell_bottom, Cell_baseline;
                    738:         { valign        top       middle       bottom       baseline }
                    739:            No_wrap = no_wrap; BackgroundColor;
                    740:         { nowrap             bgcolor }
1.129     vatton    741:           Width__; IntWidthPxl; IntWidthPercent;
                    742:           Height_;  IntHeightPercent; IntHeightPxl;) =
1.63      cvs       743:         { width    height }
                    744:        LIST OF (Element);
                    745: 
                    746:   Heading_cell                                                 { TH }
                    747:      (ATTR Ref_column; ColExt; RowExt;
                    748:           abbr; axis; headers; scope;
                    749:         { abbr  axis  headers  scope }
                    750:           rowspan_; colspan_;
                    751:         { rowspan   colspan }
                    752:           Cell_align; char; charoff; Cell_valign;
                    753:         { align       char  charoff  valign }
                    754:           No_wrap; BackgroundColor;
                    755:         { nowrap   bgcolor }
1.129     vatton    756:           Width__; IntWidthPxl; IntWidthPercent;
                    757:           Height_;  IntHeightPercent; IntHeightPxl) =
1.63      cvs       758:         { width    height }
                    759:        LIST OF (Element);
                    760: 
1.85      cvs       761:   COLGROUP                                                     { COLGROUP }
                    762:     (ATTR Cell_align; Cell_valign; Width__; span_ = Integer)
                    763:        { align       valign       width    span }
                    764:         = LIST OF (COL);
                    765: 
                    766:   COL                                                          { COL }
                    767:     (ATTR Cell_align; Cell_valign; Width__; span_)
                    768:        { align       valign       width    span }
                    769:         = CONSTANT C_Empty;
                    770: 
1.63      cvs       771:   MAP                                                          { MAP }
                    772:      (ATTR NAME; Ref_IMG = REFERENCE(Any)) =
1.125     vatton    773:         { name linked to an image}
                    774:        LIST OF (CASE OF Element; AREA; END);
                    775: 
                    776:   map                                                          { MAP }
                    777:      (ATTR NAME) =
1.63      cvs       778:         { name }
1.125     vatton    779:        LIST OF (CASE OF Element; AREA; END);
1.63      cvs       780: 
                    781:   AREA                                                         { AREA }
                    782:      (ATTR shape; coords; HREF_; target_; nohref = Yes_; ALT;
                    783:         { shape  coords  href   target   nohref         alt }
                    784:           tabindex; accesskey; onfocus; onblur;
                    785:         { tabindex  accesskey  onfocus  onblur }
                    786:           x_coord = Integer; y_coord = Integer; IntWidthPxl;
1.130   ! vatton    787:            IntHeightPxl; AreaRef_IMG = REFERENCE(Any)) =
1.63      cvs       788:        GRAPHICS with x_coord ?= 0, y_coord ?= 0,
1.130   ! vatton    789:                      IntWidthPxl ?= 25, IntHeightPxl ?= 10;
1.1       cvs       790: 
1.72      cvs       791:   FRAMESET                                                     { FRAMESET }
                    792:      (ATTR RowHeight = Text; ColWidth = Text;
                    793:         { rows              cols }
                    794:           onload; onunload) =
                    795:         { onload  onunload }
1.59      cvs       796:        AGGREGATE
1.72      cvs       797:        Frames = LIST [1 .. *] OF (FrameElem = CASE OF
                    798:                                        FRAME;
                    799:                                        FRAMESET;
                    800:                                        END - (NOFRAMES));
                    801:       ? NOFRAMES = BODY + (INS, DEL);                          { NOFRAMES }
1.59      cvs       802:        END;
                    803: 
1.72      cvs       804:   FRAME                                                                { FRAME }
                    805:      (ATTR longdesc; FrameName = Text; FrameSrc = Text;
                    806:         { longdesc  name              src }
                    807:           frameborder = Border1, Border0;
                    808:         { frameborder   1        0 }
                    809:           marginwidth = Integer; marginheight = Integer;
                    810:         { marginwidth            marginheight }
1.98      cvs       811:           no_resize = Yes_; scrolling = Yes_, No_, auto_) =
1.72      cvs       812:         { noresize          scrolling   yes   no   auto }
1.63      cvs       813:        CONSTANT C_Empty;
1.59      cvs       814: 
1.63      cvs       815:   IFRAME                                                       { IFRAME }
1.72      cvs       816:      (ATTR longdesc; FrameName; FrameSrc; frameborder;
                    817:         { longdesc  name       src       frameborder }
                    818:           marginwidth; marginheight; scrolling;
                    819:         { marginwidth  marginheight  scrolling }
                    820:           Alignment; Width__; Height_) =
                    821:         { align      width    height }
1.63      cvs       822:        LIST OF (Element);
1.59      cvs       823: 
1.121     cvs       824:   ruby =                                                        { ruby }
                    825:         CASE OF
                    826:        simple_ruby;
                    827:        complex_ruby;
                    828:        END;
                    829: 
1.124     cvs       830:   simple_ruby =                                                 { ruby }
1.121     cvs       831:        BEGIN
1.122     cvs       832:        rb = Basic_Set - (simple_ruby, complex_ruby);
1.121     cvs       833:        CASE OF
1.124     cvs       834:              rt (ATTR rbspan = Integer) =
                    835:                  Basic_Set - (simple_ruby, complex_ruby);
1.121     cvs       836:              BEGIN
                    837:                  rp = TEXT;
                    838:                  rt;
                    839:                  rp;
                    840:                  END;
                    841:              END;
                    842:        END;
                    843: 
1.124     cvs       844:   complex_ruby =                                               { ruby }
1.121     cvs       845:        BEGIN
                    846:        rbc = LIST OF (rb);
                    847:        rtc1 = LIST OF (rt);
                    848:       ? rtc2 = LIST OF (rt);
                    849:        END;    
                    850:        
1.72      cvs       851:   { AnyLink is an alias for all elements with an attribute
                    852:     of type URI.  Only elements to be shown in the Links view
                    853:     are taken into account }
                    854:   AnyLink = CASE OF
                    855:        Anchor;         { HREF_ }
                    856:        Block_Quote;    { cite }
                    857:        Quotation;      { cite }
                    858:        INS;            { cite }
                    859:        DEL;            { cite }
                    860:        END;
                    861: 
1.1       cvs       862: EXCEPT
1.25      cvs       863:        HTML:           NoMove, NoResize;
1.87      cvs       864:        BODY:           NoCut, CssBackground;
1.1       cvs       865:        HEAD:           NoCut;
                    866:        TITLE:          NoCut;
                    867:        Document_URL:   Hidden, NoSpellCheck;
1.68      cvs       868:        C_Empty:        Hidden;
1.118     cvs       869:        C_BR:           SelectParent;
1.77      cvs       870:        Head_misc:      Hidden;
1.72      cvs       871:        Frames:         Hidden;
1.68      cvs       872:        Frame:          Hidden, NoCut;
1.74      cvs       873:        FRAMESET:       NoCreate;       { prevent a Return at the end of the
                    874:                                          document from creating a FRAMESET }
1.68      cvs       875:        Inserted_Text:  Hidden, NoCut;
                    876:        Basic_Set:      Hidden;
                    877:        Term_List:      Hidden;
1.63      cvs       878:        Definition_Item:Hidden;
1.1       cvs       879:        Comment_line:   Hidden;
1.113     cvs       880:        PI_line:        Hidden;
1.1       cvs       881:        GRAPHICS:       NoMove, NoResize;
1.41      cvs       882:        TEXT:           NoMove, NoResize;
1.26      cvs       883:        PICTURE:        MoveResize;
1.63      cvs       884:        Invalid_element:NoCreate;
1.127     cvs       885:        Unknown_namespace:NoCreate;
1.63      cvs       886:        Pseudo_paragraph: ParagraphBreak, Hidden;
1.117     kahan     887:        Basic_Elem:     Hidden;
1.1       cvs       888:        Paragraph:      ParagraphBreak;
                    889:        H1:             ParagraphBreak;
                    890:        H2:             ParagraphBreak;
                    891:        H3:             ParagraphBreak;
                    892:        H4:             ParagraphBreak;
                    893:        H5:             ParagraphBreak;
                    894:        H6:             ParagraphBreak;
                    895:        Address:        ParagraphBreak;
                    896:        Term:           ParagraphBreak;
                    897:        MAP:            IsDraw;
1.119     cvs       898:        AREA:           MoveResize, ClickableSurface;
1.70      cvs       899:        Password_Input: Shadow;
1.19      cvs       900:        Preformatted:   ReturnCreateNL;
1.64      cvs       901:        STYLE_:         ReturnCreateNL;
                    902:        SCRIPT:         ReturnCreateNL;
1.68      cvs       903:        Text_Area:      ReturnCreateNL;
                    904:        HTMLfragment:   NoMove, NoResize, Hidden;
1.1       cvs       905: 
1.29      cvs       906:        ExternalLink:   Invisible;
1.15      cvs       907:        InternalLink:   Invisible;
1.44      cvs       908:        IntWidthPercent:NewPercentWidth, Invisible;
                    909:        IntWidthPxl:    NewWidth, Invisible;
1.129     vatton    910:        IntHeightPercent: Invisible;
                    911:        IntHeightPxl:   NewHeight, Invisible;
1.1       cvs       912:        IntItemStyle:   Invisible;
                    913:        IntSizeIncr:    Invisible;
                    914:        IntSizeDecr:    Invisible;
                    915:        IntSizeRel:     Invisible;
1.93      cvs       916:        IsInput:        Invisible;
1.1       cvs       917:        x_coord:        Invisible, NewHPos;
                    918:        y_coord:        Invisible, NewVPos;
                    919:        Ref_IMG:        Invisible;
                    920:        AreaRef_IMG:    Invisible;
                    921:        Invalid_attribute: Invisible;
1.127     cvs       922:        Unknown_attribute: Invisible;
1.90      cvs       923:        Highlight:      Invisible;
1.87      cvs       924:        PseudoClass:    Invisible, CssPseudoClass;
1.1       cvs       925:        Default_Value:  Invisible;
1.63      cvs       926:        DefaultSelected:Invisible;
1.1       cvs       927:        DefaultChecked: Invisible;
1.17      cvs       928:        SectionNumbering:Invisible;
1.22      cvs       929:        ShowAreas:      Invisible;
1.83      cvs       930:        PrintURL:       Invisible;
1.65      cvs       931:        Namespaces:     Invisible;
1.92      cvs       932:        RealLang:       Invisible;
1.101     cvs       933:        Charset:        Invisible;
1.72      cvs       934:        HtmlDTD:        Invisible;
1.50      cvs       935:        shape:          Invisible;
1.44      cvs       936:        Data_cell:      IsCell, NoMove, NoResize;
                    937:        Heading_cell:   IsCell, NoMove, NoResize;
                    938:        Table:          IsTable, PageBreak;
1.68      cvs       939:        Column_head:    IsColHead, NoCut, Hidden;
1.75      cvs       940:        Table_head:     NoCut, Hidden, NoSelect;
                    941:        C_Head:         Hidden, NoSelect;
                    942:        Table_foot:     NoCut, Hidden, NoSelect, PageBreakRepBefore;
                    943:        C_Foot:         Hidden, NoSelect;
1.85      cvs       944:        Cols:           Hidden, NoSelect;
1.38      cvs       945:        Table_body:     PageBreakAllowed, Hidden;
1.44      cvs       946:        Table_row:      IsRow, PageBreakPlace;
1.1       cvs       947:        ColExt:         Invisible;
1.2       cvs       948:        RowExt:         Invisible;
1.44      cvs       949:        Ref_column:     ColRef, Invisible;
                    950:        colspan_:       ColSpan;
                    951:        rowspan_:       RowSpan;
1.68      cvs       952:        Object_Content: Hidden, NoCreate, NoCut;
1.1       cvs       953:        Ghost_restruct: Invisible;
1.100     cvs       954:         IntEntity:     Invisible;
                    955:         EntityName:    Invisible;
1.82      cvs       956:        onclick:        EventAttr;
                    957:        ondblclick:     EventAttr;
                    958:        onmousedown:    EventAttr;
                    959:        onmouseup:      EventAttr;
                    960:        onmouseover:    EventAttr;
                    961:        onmousemove:    EventAttr;
                    962:        onmouseout:     EventAttr;
                    963:        onkeypress:     EventAttr;
                    964:        onkeydown:      EventAttr;
                    965:        onkeyup:        EventAttr;
1.87      cvs       966:        ID :            CssId;
                    967:        Class:          CssClass;
1.123     cvs       968:        SVG_ImageContent: Hidden;
1.128     cvs       969:        Embed_Content:  Hidden;
1.63      cvs       970: 
1.1       cvs       971: END

Webmaster