Приведение грамматик. Устранение недостижимых символов, устранение бесполезных символов, страница 12

style -> '<' 'STYLE' '>' data '<' '/' 'STYLE' '>'

text -> data

h_cont -> h_cont text

h_attr -> 'ALIGN' '=' align_val

h1 -> '<' 'H1' h_attr '>' h_cont '<' '/' 'H1' '>'

h2 -> '<' 'H2' h_attr '>' h_cont '<' '/' 'H2' '>'

h3 -> '<' 'H3' h_attr '>' h_cont '<' '/' 'H3' '>'

h4 -> '<' 'H4' h_attr '>' h_cont '<' '/' 'H4' '>'

h5 -> '<' 'H5' h_attr '>' h_cont '<' '/' 'H5' '>'

h6 -> '<' 'H6' h_attr '>' h_cont '<' '/' 'H6' '>'

heading -> h1

body_cont -> body_cont heading

a_cont -> a_cont text

a_attr -> a_attr 'HREF' '=' string

a  -> '<' 'A' a_attr '>' a_cont '<' '/' 'A' '>'

special -> a

font_phrase_cont -> font_phrase_cont text

i  -> '<' 'I' '>' font_phrase_cont '<' '/' 'I' '>'  

b  -> '<' 'B' '>' font_phrase_cont '<' '/' 'B' '>'  

u  -> '<' 'U' '>' font_phrase_cont '<' '/' 'U' '>'

font -> i

img_attr -> img_attr 'SRC' '=' string

img  -> '<' 'IMG' img_attr '>'

font_cont -> font_cont text

font_attr -> 'SIZE' '=' 'SIZE_VALUE'

fonttag  -> '<' 'FONT' font_attr '>' font_cont '<' '/' 'FONT' '>'

p_cont -> text

p -> '<' 'P' '>' p_cont '<' '/' 'P' '>'

block -> p

br -> '<' 'BR' '>'

th_td_attr -> th_td_attr 'WIDTH' '=' number

th -> '<' 'TH' th_td_attr '>' body_cont '<' '/' 'TH' '>'

td -> '<' 'TD' th_td_attr '>' body_cont '<' '/' 'TD' '>'

tr_cont -> tr_cont td

tr -> '<' 'TR' '>' tr_cont '<' '/' 'TR' '>'

table_cont -> tr

table_attr -> table_attr 'WIDTH' '=' number

table  -> '<' 'TABLE' table_attr '>' table_cont '<' '/' 'TABLE' '>'

hr_attr -> hr_attr 'SIZE' '=' number

hr  -> '<' 'HR' hr_attr '>'

form_cont -> body_cont

form_attr -> form_attr 'ACTION' '=' string

form  -> '<' 'FORM' form_attr '>' form_cont '<' '/' 'FORM' '>'

center -> '<' 'CENTER' '>' body_cont '<' '/' 'CENTER' '>'

div -> '<DIV' 'ALIGN' '=' align_val '>' body_cont '</DIV' '>'

flow -> flow text

ol_li  -> '<' 'LI' '>' flow

ol_cont -> ol_cont ol_li

ol  -> '<' 'OL' '>' ol_cont '<' '/' 'OL' '>'

ul_li -> '<' 'LI' '>' flow

ul_cont -> ul_cont ul_li

ul -> '<' 'UL' '>' ul_cont '<' '/' 'UL' '>'

list -> ol

dd -> '<' 'DD' '>' flow

dt_cont -> dt_cont text

dt -> '<' 'DT' '>' dt_cont

dl_cont -> dl_cont dd

dl -> '<' 'DL' '>' dl_cont '<' '/' 'DL' '>'

input_attr -> input_attr 'NAME' '=' string

input  -> '<' 'INPUT' input_attr '>'

forms -> input

head_cont -> head_cont title

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

body_attr -> body_attr 'BACKGROUND' '=' string

body ->  '<' 'BODY' body_attr '>' body_cont '<' '/' 'BODY' '>'

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

document -> 'DOCTYPE' html

Устранение цепных правил

Цепные правила:

heading -> h1

heading -> h2

heading -> h3

heading -> h4

heading -> h5

heading -> h6

heading -> <' 'H1' h_attr '>' h_cont '<' '/' 'H1' '>'

            |  '<' 'H2' h_attr '>' h_cont '<' '/' 'H2' '>'

| '<' 'H3' h_attr '>' h_cont '<' '/' 'H3' '>'

| '<' 'H4' h_attr '>' h_cont '<' '/' 'H4' '>'

| '<' 'H5' h_attr '>' h_cont '<' '/' 'H5' '>'

| '<' 'H6' h_attr '>' h_cont '<' '/' 'H6' '>'

font -> i

font -> b

font -> u

special -> a

special -> img

special -> fonttag

special -> br

special -> script

text -> data

text -> font

text -> special

text -> forms

 

text -> data