Нормальная форма Бэкуса-Наура, страница 5

<caption> ::= '<CAPTION' <caption_attr> '>' <caption_cont> '</CAPTION' '>'   <caption_attr> ::= 'ALIGN' '=' 'TOP' | 'ALIGN' '=' 'BOTTOM' | ‘ ‘  

<caption_cont> ::= <caption_cont> <text> | ‘ ‘   

<tr> ::= '<TR' <tr_attr> '>' <tr_cont> '</TR' '>' | '<TR' <tr_attr> '>' <tr_cont>  

<tr_attr> ::= 'ALIGN' '=' <align_val> 'VALIGN' '=' <valign_val> |

'VALIGN' '=' <valign_val> 'ALIGN' '=' <align_val> | 'VALIGN' <valign_val> |

'ALIGN' '=' <align_val> | ‘ ‘  

<valign_val> ::= 'TOP' | 'MIDDLE' | 'BOTTOM' | 'BASELINE'

<tr_cont> ::= <tr_cont> <td> |  <tr_cont> <th> | ‘ ‘ 

<th> ::= '<TH' <th_td_attrs> '>' <body_cont> '</TH' '>' | '<TH' <th_td_attrs> '>' <body_cont>  

<th_td_attrs> ::= <th_td_attr>   <th_td_attr> ::= <th_td_attr> 'ROWSPAN' '=' <number> |

<th_td_attr> 'COLSPAN' '=' <number> |

<th_td_attr> 'NOWRAP' | <th_td_attr> 'NOWRAP' '=' 'NOWRAP' |   <th_td_attr> 'ALIGN' '=' <align_val> | <th_td_attr> 'VALIGN' '=' <valign_val> | <th_td_attr> 'WIDTH' '=' <number> | <th_td_attr> 'HEIGHT' '=' <number> | ‘ ‘  

<td> ::= '<TD' <th_td_attrs> '>' <body_cont> '</TD' '>' | '<TD' <th_td_attrs> '>' <body_cont>  

<address>  ::= '<ADDRESS' '>' <address_cont> '</ADDRESS' '>'   <address_cont> ::= <address_cont> <p> | <address_cont> <text> | ‘ ‘

Формальная порождающая грамматика.

G=<N,T,P,S>

N={document, , html, html_start, head, head_cont, title, data, color, align_val, align_special_val, httpmethod, litter, digit, number, string, isindex, base, script, style, meta, meta_attr, link, link_attrs, link_attr, body, body_attrs, body_attr, body_cont, heading, h1, h2, h3, h4, h5, h6, h_attr, h_cont, text, font, phrase, special, forms, tt, i, b, u, strike, big, small, sub, sup , em, strong, dfn, code, samp, kbd, var, cite, font_phrase_cont, a, a_attrs, a_attr, a_cont, img, img_attrs, img_attr, applet, applet_attrs, applet_attr, applet_cont, param, param_attr, fonttag, font_attr, font_cont, basefont, br, clear_val, map, map_cont, area, area_attrs, area_attr, shape_val, input, input_attrs, input_attr, type_input_val, select, select_attrs, select_attr, select_cont, option, option_attr, option_attr_selected, textarea, textarea_attr, block, p, p_attr, p_cont, list, ul, ul_attr, ul_attr_type, ul_attr_compact, ulstyle, ul_cont, ul_li, ul_li_attr, flow, ol, ol_attrs, ol_attr, ol_cont, ol_li, ol_li_attr, ol_li_attr_type, dir, dir_menu_attr, dir_menu_cont, menu, preformatted, pre, pre_attr, dl, dl_attr, dl_cont, dt, dt_cont, dd, div, center, blockquote, form, form_attrs, form_attr, form_cont, hr, hr_attrs, hr_attr, table, table_attrs, table_attr, table_cont, table_cont1, caption, caption_attr, caption_cont, tr, tr_attr, valign_val, tr_cont, th, th_td_attrs, th_td_attr, td, address, address_cont}

T={ a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z, а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,э,ю,я, а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я,

0,1,2,3,4,5,6,7,8,9,<,>,=, l}

S={document}

P={document -> 'DOCTYPE' html  

html -> html_start head body '</HTML' '>' html -> head body

html_start -> '<HTML' 'VERSION' '=' string '>' html_start -> '<HTML' '>'

head -> '<HEAD' '>' head_cont '</HEAD' '>' head -> head_cont


head_cont -> head_cont title head_cont -> head_cont isindex head_cont -> head_cont base head_cont -> head_cont script head_cont -> head_cont style head_cont -> head_cont meta head_cont -> head_cont link head_cont -> l