Annotation of Amaya/amaya/SVG.S, revision 1.14

1.1       vatton      1: 
                      2:       { Thot structure schema for Scalable Vector Graphics }
                      3: 
                      4: STRUCTURE SVG;
                      5: 
                      6: DEFPRES SVGP;
                      7: 
                      8: ATTR
                      9: 
                     10:    { global attributes for all SVG elements }
                     11:    id = text;
                     12:    class = text;
                     13:    PseudoClass = Text;
                     14:    style_ = text;
                     15:    xml_space = xml_space_default, xml_space_preserve;
1.3       cvs        16:    { xml_base = Text; }
                     17:        
1.1       vatton     18:    { global attributes for internal processing }
1.2       cvs        19:    Unknown_attribute = text;
1.1       vatton     20:    Ghost_restruct = text;
                     21:    Highlight = Yes_;        { to show the SVG element corresponding to the
                     22:                              current selection in the source view }
                     23:    Namespace = text;        { for children of element foreignObject }
                     24:    IntEmptyShape = yes_, no_;
                     25: 
                     26: STRUCT
                     27: 
1.8       cvs        28: { Structure Module }
                     29: 
1.1       vatton     30:    SVG
1.7       cvs        31:        (ATTR requiredFeatures = text;
                     32:              requiredExtensions = text;
                     33:              systemLanguage = text;
                     34:              externalResourcesRequired = false, true;
                     35:              fill = text;
                     36:              stroke = text;
                     37:              stroke_width = text;
                     38:              font_family = text;
1.5       cvs        39:              font_size = text;
                     40:              font_style = normal_, italic, oblique_, inherit;
                     41:              font_variant = normal_, small_caps, inherit;
                     42:              font_weight = normal_, bold_, bolder, lighter, w100, w200, w300,
                     43:                            w400, w500, w600, w700, w800, w900, inherit;
1.14    ! quint      44:              direction_ = ltr_, rtl_, inherit; 
1.6       cvs        45:              text_decoration = text;
1.14    ! quint      46:              unicode_bidi = normal_, embed_, bidi_override, inherit;
1.5       cvs        47:              viewBox = text;
1.1       vatton     48:              x = text;
                     49:               y = text;
1.5       cvs        50:              width_ = text;
1.1       vatton     51:              height_ = text;
1.11      cvs        52:              RealLang = Yes_;
1.1       vatton     53:              Charset = text)
1.14    ! quint      54:         = LIST OF (GraphicsElement) + (XMLcomment, XMLPI, CDATA,
        !            55:                                       Unknown_namespace);
1.1       vatton     56: 
1.8       cvs        57:    desc = TEXT;
                     58:        
                     59:    title = TEXT;
                     60:        
                     61:    metadata = TEXT;
                     62: 
1.1       vatton     63:    g
1.7       cvs        64:         (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                     65:              externalResourcesRequired; 
                     66:              fill; stroke; stroke_width;
1.5       cvs        67:              font_family; font_size; font_style; font_variant; font_weight;
1.14    ! quint      68:              direction_; text_decoration; unicode_bidi;
1.1       vatton     69:              transform = text)
                     70:         = LIST OF (GraphicsElement);
                     71: 
                     72:    defs
1.7       cvs        73:         (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                     74:              externalResourcesRequired;
                     75:              fill; stroke; stroke_width;
1.5       cvs        76:              font_family; font_size; font_style; font_variant; font_weight;
1.14    ! quint      77:              direction_; text_decoration; unicode_bidi;
1.1       vatton     78:              transform;
                     79:              { graphicsElementEvents })
                     80:         = LIST OF (GraphicsElement);
                     81: 
1.14    ! quint      82:    symbol_  { not in SVG Tiny }
        !            83:        (ATTR externalResourcesRequired;
        !            84:              fill; stroke; stroke_width;
        !            85:              font_family; font_size; font_style; font_variant; font_weight;
        !            86:              direction_; text_decoration; unicode_bidi;
        !            87:              viewBox;
        !            88:              preserveAspectRatio = text; 
        !            89:              { graphicsElementEvents })
        !            90:         = LIST OF (GraphicsElement);
        !            91: 
1.8       cvs        92:    use_  { not in SVG Tiny }
                     93:         (ATTR xlink_href = text;
                     94:              requiredFeatures; requiredExtensions; systemLanguage;
                     95:              externalResourcesRequired;
                     96:              fill; stroke; stroke_width;
                     97:              font_family; font_size; font_style; font_variant; font_weight;
1.14    ! quint      98:              direction_; text_decoration; unicode_bidi;
1.8       cvs        99:              transform;
                    100:              { graphicsElementEvents }
                    101:              x; 
                    102:              y;
                    103:               width_;
                    104:               height_)
                    105:         = AGGREGATE
                    106:               desc; title; metadata;
                    107:              END;
                    108:        
                    109: { Images }
                    110: 
                    111:    image
                    112:        (ATTR xlink_href;
                    113:              requiredFeatures; requiredExtensions; systemLanguage;
1.7       cvs       114:              externalResourcesRequired; 
1.8       cvs       115:              transform;
                    116:              x; 
                    117:              y;
                    118:               width_;
                    119:               height_)
1.1       vatton    120:         = AGGREGATE
1.8       cvs       121:               desc; ? title; ? metadata;
                    122:               PICTURE;
                    123:               SVG_Image = SVG;
1.1       vatton    124:              END;
                    125: 
1.8       cvs       126: { Conditional Processing }
                    127: 
                    128:    switch
                    129:        (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                    130:              externalResourcesRequired;
                    131:              { PresentationAttributes-All }
                    132:              fill; stroke; stroke_width;
                    133:              font_family; font_size; font_style; font_variant; font_weight;
1.14    ! quint     134:              direction_; text_decoration; unicode_bidi;
1.8       cvs       135:              transform;
                    136:              { graphicsElementEvents })
                    137:        = LIST OF (CASE OF
                    138:                      GraphicsElement; foreignObject;
                    139:                      END);
                    140: 
                    141: { Styling }
                    142: 
                    143:    style__  { not in SVG Tiny }
                    144:        (ATTR type = text;
                    145:              media = text;
                    146:              title_ = text)
                    147:        = TEXT;
                    148: 
                    149: { Shapes }
                    150: 
1.1       vatton    151:    rect
1.7       cvs       152:         (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                    153:              externalResourcesRequired; 
                    154:              fill; stroke; stroke_width;
                    155:              transform;
1.1       vatton    156:              x;
                    157:               y;
                    158:               width_;
                    159:               height_;
                    160:              rx = text;
1.7       cvs       161:              ry = text)
1.1       vatton    162:         = AGGREGATE
                    163:              desc; title; metadata;
                    164:              GRAPHICS;
                    165:              END;
                    166:        
                    167:    circle
1.7       cvs       168:         (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                    169:              externalResourcesRequired; 
                    170:              fill; stroke; stroke_width;
                    171:              transform;
1.1       vatton    172:              cx = text;
                    173:              cy = text;
1.7       cvs       174:               r = text)
1.1       vatton    175:         = AGGREGATE
                    176:              desc; title; metadata;
                    177:              GRAPHICS;
                    178:              END;
                    179:        
1.8       cvs       180:    line_
1.7       cvs       181:         (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                    182:              externalResourcesRequired; 
                    183:              fill; stroke; stroke_width;
                    184:              transform;
1.8       cvs       185:              x1 = text;
                    186:              y1 = text;
                    187:               x2 = text;
                    188:              y2 = text)
1.1       vatton    189:         = AGGREGATE
                    190:              desc; title; metadata;
                    191:              GRAPHICS;
                    192:              END;
                    193:        
1.8       cvs       194:    ellipse
1.7       cvs       195:         (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                    196:              externalResourcesRequired; 
                    197:              fill; stroke; stroke_width;
                    198:              transform;
1.8       cvs       199:              cx;
                    200:              cy;
                    201:              rx;
                    202:              ry)
1.1       vatton    203:         = AGGREGATE
                    204:              desc; title; metadata;
                    205:              GRAPHICS;
                    206:              END;
                    207:        
                    208:    polyline
1.7       cvs       209:         (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                    210:              externalResourcesRequired; 
                    211:              fill; stroke; stroke_width;
1.1       vatton    212:              transform;
1.7       cvs       213:               points = text)
1.1       vatton    214:         = AGGREGATE
                    215:              desc; title; metadata;
                    216:              GRAPHICS;
                    217:              END;
                    218:        
                    219:    polygon
1.7       cvs       220:         (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                    221:              externalResourcesRequired; 
                    222:              fill; stroke; stroke_width;
1.1       vatton    223:              transform;
1.7       cvs       224:               points)
1.1       vatton    225:         = AGGREGATE
                    226:              desc; title; metadata;
                    227:              GRAPHICS;
                    228:              END;
                    229: 
1.8       cvs       230:    path
                    231:        (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                    232:              externalResourcesRequired; 
                    233:              fill; stroke; stroke_width;
                    234:               transform;
                    235:              d = text;
                    236:              pathLength = text)
                    237:         = AGGREGATE
                    238:              desc; title; metadata;
                    239:              GRAPHICS;
                    240:              END;
                    241: 
                    242: { Text }
                    243:        
1.1       vatton    244:    text_
1.7       cvs       245:         (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                    246:              externalResourcesRequired; 
                    247:              fill; stroke; stroke_width;
                    248:              font_family; font_size; font_style; font_variant; font_weight;
1.14    ! quint     249:              direction_; text_decoration; unicode_bidi;
1.5       cvs       250:              transform;
1.1       vatton    251:              x;
1.7       cvs       252:              y;
                    253:              dx = text;
                    254:              dy = text)
1.1       vatton    255:          = LIST OF (TextComponent);
                    256: 
1.8       cvs       257:    tspan  { not in SVG Tiny }
1.7       cvs       258:        (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                    259:              externalResourcesRequired; 
                    260:              fill; stroke; stroke_width;
                    261:              font_family; font_size; font_style; font_variant; font_weight;
1.14    ! quint     262:              direction_; text_decoration; unicode_bidi;
1.5       cvs       263:              x;
1.1       vatton    264:               y;
1.7       cvs       265:              dx;
                    266:              dy)
1.8       cvs       267:        = LIST OF (SpanElement = CASE OF
                    268:                      TEXT;
                    269:                      tspan; 
                    270:                      desc;
                    271:                      title;
                    272:                      metadata;
                    273:                      END);
                    274:        
1.1       vatton    275:    { tref }
                    276:    { textPath }
                    277:    { altGlyph }
1.8       cvs       278: 
                    279: { Filters }
                    280: 
                    281:    { filter }
                    282:    { feBlend }
                    283:    { feFlood }
                    284:    { feColorMatrix }
                    285:    { feComponentTransfer }
                    286:    { feComposite }
                    287:    { feConvolveMatrix }
                    288:    { feDiffuseLighting }
                    289:    { feDisplacementMap }
                    290:    { feGaussianBlur }
                    291:    { feImage }
                    292:    { feMerge }
                    293:    { feMorphology }
                    294:    { feOffset }
                    295:    { feSpecularLighting }
                    296:    { feTile }
                    297:    { feTurbulence }
                    298: 
1.14    ! quint     299: { Interactivity }
        !           300: 
        !           301:    { cursor }
        !           302: 
        !           303: { Linking }
        !           304: 
        !           305:    a
        !           306:         (ATTR xlink_href;
        !           307:              requiredFeatures; requiredExtensions; systemLanguage;
        !           308:              externalResourcesRequired;
        !           309:              fill; stroke; stroke_width;
        !           310:              font_family; font_size; font_style; font_variant; font_weight;
        !           311:              direction_; text_decoration; unicode_bidi;
        !           312:              transform;
        !           313:              { graphicsElementEvents }
        !           314:              target_ = text)
        !           315:        = LIST OF (CASE OF
        !           316:                      GraphicsElement; TextComponent;
        !           317:                      END);
        !           318: 
1.8       cvs       319: { Scripting }
                    320: 
1.12      vatton    321:    script_  { not in SVG Tiny }
1.8       cvs       322:        (ATTR externalResourcesRequired;
                    323:              type)
                    324:        = TEXT;
                    325: 
                    326: { Animation }
                    327: 
                    328:    { animate }
                    329:    { set }
                    330:    { animateMotion }
                    331:    { animateTransform }
                    332:    { animateColor }
                    333:    { mpath }
                    334: 
                    335: { Fonts }
                    336: 
1.1       vatton    337:    { font }
1.8       cvs       338:    { font-face }
1.1       vatton    339:    { glyph }
                    340:    { missing-glyph }
                    341:    { hkern }
                    342:    { vkern }
                    343: 
1.8       cvs       344: { Extensibility }
                    345: 
                    346:    foreignObject  { not in SVG Tiny }
                    347:         (ATTR requiredFeatures; requiredExtensions; systemLanguage;
                    348:              externalResourcesRequired; 
1.7       cvs       349:              fill; stroke; stroke_width;
1.5       cvs       350:              font_family; font_size; font_style; font_variant; font_weight;
1.14    ! quint     351:              direction_; text_decoration; unicode_bidi;
1.1       vatton    352:              transform;
                    353:              x; 
1.8       cvs       354:               y;
1.1       vatton    355:               width_;
                    356:               height_)
1.8       cvs       357:        = BEGIN CASE OF
                    358:              HTML; MathML;
1.1       vatton    359:              END;
1.8       cvs       360:           END;
                    361: 
                    362: { Clipping }
1.1       vatton    363: 
                    364:    { clipPath }
1.8       cvs       365: 
                    366: { Masking }
                    367: 
1.1       vatton    368:    { mask }
1.8       cvs       369: 
                    370: { Markers }
                    371: 
                    372:    { marker }
                    373: 
                    374: { Gradients }
                    375: 
1.1       vatton    376:    { linearGradient }
                    377:    { radialGradient }
                    378:    { stop }
1.8       cvs       379: 
                    380: { Patterns }
                    381: 
1.1       vatton    382:    { pattern }
1.8       cvs       383: 
                    384: { Views }
1.1       vatton    385: 
                    386:    { view }
                    387: 
1.8       cvs       388: { The following elements from SVG 1.0 does not appear in WD-SVG11-20011030 }
1.1       vatton    389: 
1.8       cvs       390:    { altGlyphDef }
                    391:    { altGlyphItem }
                    392:    { glyphRef }
1.1       vatton    393:    { color-profile }
                    394:    { font-face-src }
                    395:    { font-face-uri }
                    396:    { font-face-format }
                    397:    { font-face-name }
                    398:    { definition-src }
                    399:    { cursor }
                    400: 
1.8       cvs       401: { The following elements are not defined in the SVG DTD }
1.1       vatton    402: 
                    403:    GraphicsElement
                    404:        = CASE OF
1.3       cvs       405:              desc; title; metadata;
                    406:              defs;
1.1       vatton    407:              path; text_; rect; circle; ellipse; line_; polyline; polygon;
1.3       cvs       408:              use_; image; SVG; g; switch; a;
1.12      vatton    409:              script_; style__; symbol_;
1.3       cvs       410:              XLink;
1.1       vatton    411:              END;
                    412: 
                    413:    TextComponent
                    414:        = CASE OF
                    415:              tspan;    { must be the first option, to allow the Return key
                    416:                          to create tspan elements }
                    417:              TEXT; 
                    418:              desc;
                    419:              title;
                    420:              metadata;
                    421:              END;
                    422: 
1.10      cvs       423:    DOCTYPE = LIST OF (DOCTYPE_line = TEXT);    
1.9       cvs       424:        
1.1       vatton    425:    XMLcomment = LIST OF (XMLcomment_line = TEXT);
                    426: 
                    427:    XMLPI = LIST OF (XMLPI_line = TEXT);
                    428: 
1.13      cvs       429:    CDATA = LIST OF (CDATA_line = TEXT);
                    430: 
1.2       cvs       431:    Unknown_namespace = TEXT;
1.6       cvs       432: 
1.1       vatton    433: EXCEPT
                    434: 
                    435:    SVG:                 IsDraw, MoveResize, NoMove;
                    436:    g:                   NoMove, NoResize, HighlightChildren, NoShowBox,
                    437:                         NoCreate;
                    438:    defs:                NoMove, NoResize, NoShowBox, NoCreate;
                    439:    rect:                MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    440:    circle:              MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    441:    ellipse:             MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    442:    line_:               MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    443:    polyline:            MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    444:    polygon:             MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    445:    path:               MoveResize, HighlightChildren, NoShowBox, NoCreate;
                    446:    text_:               MoveResize, NoResize, NoShowBox, ReturnCreateWithin,
                    447:                        NoCreate;
                    448:    tspan:              NoShowBox; 
                    449:    use_:               NoMove, NoResize, HighlightChildren, NoShowBox,
                    450:                        NoCreate;
                    451:    image:              MoveResize, HighlightChildren, NoShowBox;
                    452:    symbol_:            NoMove, NoResize,  HighlightChildren,NoShowBox,
                    453:                         NoCreate;
                    454:    a:                  NoMove, NoResize, HighlightChildren, NoShowBox,
                    455:                         NoCreate;
1.12      vatton    456:    script_:            NoMove, NoResize, NoShowBox, NoCreate;
1.1       vatton    457:    style__:             NoMove, NoResize, NoShowBox, NoCreate;
1.4       cvs       458:    switch:              NoMove, NoResize, NoShowBox, NoCreate;
1.1       vatton    459:    foreignObject:       MoveResize, HighlightChildren, NoCreate;
1.4       cvs       460:    SVG_Image:           Hidden, SelectParent;
1.1       vatton    461:    GRAPHICS:           SelectParent;
                    462:    PICTURE:             NoMove, NoResize, SelectParent;
                    463:    TEXT:                NoMove, NoResize;
1.2       cvs       464:    Unknown_namespace:   NoCreate;
1.1       vatton    465: 
                    466:    id:                  CssId;
                    467:    class:               CssClass;
                    468:    PseudoClass:                Invisible, CssPseudoClass;
1.2       cvs       469:    Unknown_attribute:   Invisible;
1.1       vatton    470:    Highlight:          Invisible; 
                    471:    Ghost_restruct:      Invisible;
                    472:    Namespace:          Invisible;
                    473:    IntEmptyShape:       Invisible;
1.11      cvs       474:    RealLang:           Invisible;
                    475:    Charset:            Invisible;
1.10      cvs       476:    XMLcomment_line:     Hidden;
                    477:    XMLPI_line:          Hidden;
                    478:    DOCTYPE_line:        Hidden;
1.13      cvs       479:    CDATA_line:          Hidden;
1.1       vatton    480: 
                    481: END

Webmaster