ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ·ΡΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ° HTML
ΠΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ²ΡΠ·Π°Π½Π° Ρ Π±ΡΡΠ½ΡΠΌ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠΎΠ² Π²Π΅Π±-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ HTML. Π’Π°ΠΊΠΆΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ, ΡΠ»ΡΡΡΠΈΠΌ Π·Π½Π°Π½ΠΈΡ Π°Π·ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Ρ ΠΎΠ΄Π΅ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»Π° Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ HTML ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ, Π² ΡΠ»ΡΡΠ°Π΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ·ΡΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ° HTML (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ·ΡΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ° HTML
1. ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·
2. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·
3. ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΠΈΡΠ΅ΡΠ°ΡΡΡΠ°
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π — ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π¦Π΅Π»ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ·ΡΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ HTML. ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°. Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΊΠΎΠ΄Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΡΠΎΠΈΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ. Π ΠΈΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Π Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π²Ρ ΠΎΠ΄Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ — ΡΡΠΎ Π»Π΅ΠΊΡΠ΅ΠΌΡ, ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠ·ΡΠΊ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ HTML.
Π’Π΅Π³ΠΈ — ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ·ΡΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ°, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠ΅ΠΊΡΡ.
Π’Π΅Π³ΠΈ, ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ:
1.
— Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΡΡΠ°Π½ΠΈΡ, ΡΡΠΎ ΡΡΠΎ HTML Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π°ΡΠ°Π»ΠΎ Π²Π΅Π±-ΠΊΠΎΠ΄Π°.2.
— ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠ°Ρ Π² ΡΠ΅Π»Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΠ΄Π΅ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΠ΅Π³ Π½Π°Π·Π²Π°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΈ ΡΠ΅Π³ΠΈ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ ΠΌΠ°ΡΠΈΠ½.3. — ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΡΡΠ°Π½ΠΈΡ.
4.
— ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΠΈΠ΄ΠΈΠΌΡΡ ΡΠ°ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°.5.
— ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ.6.
7.
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, ΡΠ°ΠΊ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·.
ΠΠ»Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Lex — ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ².
ΠΠ»Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΏΡΡΠΊΠ°. ΠΠ΅ΡΠΎΠ΄ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΏΡΡΠΊΠ° ΠΈΠ»ΠΈ Π½ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΡΠ°Π·Π±ΠΎΡ — ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠ·ΡΠΊΡ
ΠΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ²ΡΠ·Π°Π½Π° Ρ Π±ΡΡΠ½ΡΠΌ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠΎΠ² Π²Π΅Π±-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ HTML. Π’Π°ΠΊΠΆΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ, ΡΠ»ΡΡΡΠΈΠΌ Π·Π½Π°Π½ΠΈΡ Π°Π·ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
1. ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·
ΠΠ»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ ΡΠ·ΡΠΊΠ° HTML ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅Π³ΠΈ. HTML Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΎΡΠΊΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ΅Π³Π° ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠΈΠΌ ;
. ΠΠΎΠΊΡΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ΅Π»ΠΎ, Π° Π³ΠΎΠ»ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ.ΠΠΎΠ»ΠΎΠ²Π°, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ΅Π³ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° —. Π ΠΏΠΎΠ»Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠΊΡΡΠ²Π°ΡΡΠΈΠΌΡΡ ΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠΈΠΌΡΡ ΡΠ΅Π³Π°ΠΌΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ.
Π’Π΅Π»ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ, Ρ ΠΎΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ. Π ΡΠ΅Π»Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π²ΡΡ ΡΡΡΡΠΊΡΡΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΡΠ΅Π³ΠΈ ΡΠ°Π±Π»ΠΈΡΡ
ΠΈ Π²ΡΡ, ΡΡΠΎ Π²Ρ ΠΎΠ΄ΡΡ Π² ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ.Π’Π΅Π³
ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΡΠ΄ (ΡΡΡΠΎΠΊΡ) ΡΡΠ΅Π΅ΠΊ ΡΠ°Π±Π»ΠΈΡΡ. Π―ΡΠ΅ΠΉΠΊΠΈ Π² ΡΡΠ΄Ρ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π³Π°"
«returni (b_tabl_tr_en);»
«returni (b_tabl_td_en);{L}({L}|{D})* returni (id);
" '" ({L}|{D})+" '" returni (param);
({L}|{D}|{P})* returni (str_ru);
> returnc ('>');
= returnc ('=');
" «;
. returni (lex_error);
%%
end.
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΊΠ°Π²ΡΡΠΊΠ°Ρ . Π ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ ΡΡΡΠΎΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ yylex Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ .
Π ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠ°Π²ΠΈΠ», Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ΄Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· Π½ΠΈΡ , ΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. Π Π°Π·Π΄Π΅Π» ΠΏΡΠ°Π²ΠΈΠ» ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Π½ΡΠ°. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ «end.», ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ.
2. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π·Π°Π΄Π°Π½ «ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΏΡΡΠΊΠ°». ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. Π’Π΅ΠΊΡΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅:
GOAL>HTML
HTML>HEAD BODY
. Π ΠΎΡΠΊΡΡΠ²Π°ΡΡΠ΅ΠΌΡΡ ΡΠ΅Π³Π΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅Π³Π° Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡΡ: 1. align — ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π²ΡΠ΅Ρ ΡΡΠ΅Π΅ΠΊ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΄Π°. 2. valign — ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π²ΡΠ΅Ρ ΡΡΠ΅Π΅ΠΊ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΄Π°. 3. bgcolor — ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ΅Π΅ΠΊ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΄Π°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠ΅, Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π»ΠΈ, ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. Π Π½Π°ΡΠ°Π»Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΈ ΠΊΠ°ΠΊ Π»Π΅ΠΊΡΠ΅ΠΌΡ Π² ΡΠ°ΠΉΠ»Π΅ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ htmllex. l Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Lex. Π’Π΅ΠΊΡΡ ΡΠ°ΠΉΠ»Π°: unit htmllex; interface const html_st=257; html_en=258; t_st = 259; t_en = 260; h_st=261; h_en=262; b_st=263; b_en=264; b_tabl_st=265; b_tabl_en=271; id=300; str_ru=301; param=302; b_tabl_tr_st=303; b_tabl_tr_en=304; b_tabl_td_st=305; b_tabl_td_en=306; lex_error=313; function yylex: integer; implementation uses lexlib; D [0−9] L [a-zA-Z] P [Π°-ΡΠ-Π―] %% " «returni (html_st); " «returni (html_en);» " «returni (t_en); " «returni (h_st);» «returni (h_en); " «returni (b_st);» «returni (b_en);» " «returni (b_tabl_en);» |
" |
HEAD>
TITLE|Π΅
TITLE>
|Π΅
HEADLINE > str_ru
|Π΅
BODY>
CONTENTCONTENT > TABLE0 CONTENT
|str_ru CONTENT
|id CONTENT
|Π΅
TABLE0 >
TR0TR0 >
| TR0 > TR0
| Π΅
TD0 >
ATTRIB > id=param ATTRIB
|Π΅
3. ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
ΠΠ»Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²ΠΎ.
Π§ΡΠΎΠ±Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Embarcadero RAD Studio 2010 — TreeView. Π’Π°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²Π° ΠΈΠ· Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² xml ΡΠ°ΠΉΠ» ΠΈ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΠ»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΏΠΎ Ρ ΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ ΠΈΠ·ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
Π ΡΠ·Π»Π°ΠΌ Π΄Π΅ΡΠ΅Π²Π° ΠΊΡΠ΅ΠΏΡΡΡΡ Π»ΠΈΡΡΡΡ, Π΅ΡΠ»ΠΈ ΠΆΠ΅ Π»ΠΈΡΡΠ° Π½Π΅Ρ, ΡΠΎ ΡΠ·Π΅Π» ΡΠ°ΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π»ΠΈΡΡΠΎΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³Π°
ΠΈΠ΄Π΅Ρ ΡΠ΅Π³, Π΅ΡΠ»ΠΈ ΠΆΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ, ΡΠΎ ΡΠ·Π΅Π», ΡΡΠ°Π½Π΅Ρ Π»ΠΈΡΡΠΎΠΌ Π΄Π΅ΡΠ΅Π²Π°)Π§ΡΠΎ Π±Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΠ·Π»Π° Π·Π°Π²Π΅Π»ΠΈ ΡΡΠ΅ΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΡΠ·Π»Π°.
ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 1.
Π ΠΈΡΡΠ½ΠΎΠΊ 1 — ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄
ΠΠ° ΡΠΎΡΠΌΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ:
1. ΠΠ½ΠΎΠΏΠΊΠ° «ΠΠ», ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ;
2. ΠΠ½ΠΎΠΏΠΊΠ° «ΠΡΠΌΠ΅Π½Π°», ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ;
3. ΠΠ½ΠΎΠΏΠΊΠ° «ΠΡΠΈΡΡΠΈΡΡ», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΈΡΠ°Π΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅;
4. Memo1- ΠΎΠ±Π»Π°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΠΏΠΈΡΠ°Π½ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ HTML ΠΊΠΎΠ΄;
5. TreeView — ΠΎΠ±Π»Π°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΡΠΎΠΈΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ.
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΈΠ΄ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΈΡΡΠ½ΠΊΡ 2.
Π ΠΈΡΡΠ½ΠΎΠΊ 2 — ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π°Π½Π°Π»ΠΈΠ·Π°
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Ρ ΠΎΠ΄Π΅ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»Π° Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ HTML ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ, Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΡΡΡΠΎΠΈΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΏΡΡΠΊΠ°, ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π½Π°Π²ΡΠΊΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ Lex. ΠΡΠΈΠΎΠ±ΡΠ΅Π»ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π²ΡΠΊΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠ².
Π°Π»Π³ΠΎΡΠΈΡΠΌ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° ΠΊΠΎΠ΄
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
unit Interpreate;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Lexlib, HTMLLEX, ComCtrls, StdCtrls, ExtCtrls ;
type
TPInt = ^integer;
TForm2 = class (TForm)
Button1: TButton;
Memo4: TMemo;
GroupBox1: TGroupBox;
Memo1: TMemo;
GroupBox2: TGroupBox;
TreeView1: TTreeView;
Memo2: TMemo;
Button2: TButton;
Button3: TButton;
StatusBar1: TStatusBar;
Memo3: TMemo;
procedure FormShow (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
function fglav: boolean;
function fhtml_st: boolean; //Π½Π°ΡΠ°Π»ΠΎ
function fh_st: boolean; //head start — end
function ft_st: boolean; //title
function ft_en: boolean;
function fh_en: boolean;
function fb_st: boolean; //body
function fb_tabl_st: boolean; //body — table
function fparam: boolean;
function fb_tabl_tr_st: boolean;
function fb_tabl_td_st: boolean;
function fb_tabl_td_en: boolean;
procedure push (i: integer);
procedure pop (var i: integer);
function fb_tabl_tr_en: boolean;
function fb_tabl_en: boolean;
function fb_en: boolean;
function fhtml_en: boolean;
procedure Button2Click (Sender: TObject); //ΠΊΠΎΠ½Π΅Ρ
private
stack: TList;
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
token: integer;
tree_i,
tree_t, // ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π² title ΠΈ table
tree_tr,
tree_td,
tree_p: integer;
backup: array [1.4] of integer;
implementation
{$R *.dfm}
function TForm2. fhtml_en: boolean;
begin
if token = html_en then
begin
token := yylex;
result := true;
end
else
result := false;
end;
procedure TForm2. Button2Click (Sender: TObject);
begin
Memo1.Clear;
end;
function TForm2. fb_en: boolean;
begin
if (token = b_en) then
begin
result := true;
token := yylex;
end
else
if (token = str_ru) or (token = id) then
begin
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_t], yytext);
inc (tree_i);
token := yylex;
result := fb_en;
end
else
result := false;
end;
function TForm2. fb_tabl_en: boolean;
begin
if token = b_tabl_en then
begin
result := true;
token := yylex;
end
else
result := false;
end;
function TForm2. fb_tabl_tr_en:boolean;
begin
if (token = b_tabl_tr_en) then
begin
result := true;
token := yylex;
end
else
if token = str_ru then
begin
token := yylex;
result := fb_tabl_tr_en;
end
else
result := false;
end;
procedure TForm2. pop (var i: integer);
var
zn: TPInt;
begin
zn := stack. Items[stack.count-1];
i := zn^;
stack.Delete (stack.count-1);
end;
procedure TForm2. push (i: integer);
var
zn: TPInt;
begin
new (zn);
zn^ := i;
stack.Add (zn);
end;
function TForm2. fb_tabl_td_en:boolean;
begin
result := true;
if token = b_tabl_st then
begin
push (tree_t);
push (tree_tr);
push (tree_td);
push (tree_p);
tree_t := tree_i;
result := fb_tabl_st;
pop (tree_p);
pop (tree_td);
pop (tree_tr);
pop (tree_t);
end;
if token = b_tabl_td_en then
begin
result := true;
token := yylex;
end
else
if (token = str_ru) or (token = b_tabl_st)then
begin
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_p], yytext);
inc (tree_i);
token := yylex;
result := result and fb_tabl_td_en;
end
else
result := false;
end;
function TForm2. fb_tabl_td_st:boolean;
begin
result := false;
if token = b_tabl_td_st then
begin
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_td], '
inc (tree_i);
token := yylex;
tree_p := tree_i;
result := fparam;
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_td], '>
inc (tree_i);
tree_p := tree_i;
result := result and fb_tabl_td_en;
if token = b_tabl_td_st then
result := result and fb_tabl_td_st;
end
end;
function TForm2. fb_tabl_tr_st: boolean;
begin
result := false;
if token = b_tabl_tr_st then
begin
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_tr], '
inc (tree_i);
tree_td := tree_i;
result := result and fb_tabl_td_st and fb_tabl_tr_en ;
if token = b_tabl_tr_st then
result := result and fb_tabl_tr_st;
end
end;
function TForm2. fparam:boolean;
var
pr: string;
begin
pr := '';
if token = ord ('>') then
begin
result := true;
token := yylex;
end
else
result := false;
if token = id then
begin
pr := yytext;
token := yylex;
if token = ord ('=') then
begin
pr := pr + yytext;
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_p], pr);
inc (tree_i);
token := yylex;
if token = param then
begin
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_i], yytext);
inc (tree_i);
token := yylex;
result := fparam;
end;
end;
end;
end;
function TForm2. fb_tabl_st: boolean;
begin
if token = b_tabl_st then
begin
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_t], '
inc (tree_i);
token := yylex;
tree_p := tree_i;
result := fparam;
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_t], '>
');inc (tree_i);
tree_tr := tree_i;
result := result and fb_tabl_tr_st and fb_tabl_en;
if token = b_tabl_st then
result := result and fb_tabl_st
else
if (token = str_ru) or (token = id) then
begin
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_t], yytext);
inc (tree_i);
token := yylex;
result := fb_tabl_st;
end;
end
else
if (token = str_ru) or (token = id) then
begin
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_t], yytext);
inc (tree_i);
token := yylex;
result := fb_tabl_st;
end
else
result := true;
end;
function TForm2. fb_st: boolean;
begin
if token = b_st then
begin
TreeView1.Items.AddChild (TreeView1.Items.Item[0], '
');inc (tree_i);
tree_t := tree_i;
token := yylex;
result := fb_tabl_st and fb_en;
end
else
result := false;
end;
function TForm2. fh_en: boolean;
begin
if token = h_en then
begin
token := yylex;
result := true;
end
else
result := false;
end;
function TForm2. ft_en: boolean;
begin
if (token = t_en) then
begin
result := true;
token := yylex;
end
else
if token = str_ru then
begin
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_t], yytext);
inc (tree_i);
token := yylex;
result := ft_en;
end
else
result := false;
end;
function TForm2. ft_st: boolean;
begin
if token = t_st then
begin
TreeView1.Items.AddChild (TreeView1.Items.Item[tree_i], '');
inc (tree_i);
tree_t := tree_i;
token := yylex;
result := ft_en;
end
else
result := false;
end;
function TForm2. fh_st: boolean;
begin
if token = h_st then
begin
TreeView1.Items.AddChild (TreeView1.Items.Item[0], '
');inc (tree_i);
token := yylex;
result := ft_st and fh_en;
end
else
result := true;
end;
function TForm2. fhtml_st: boolean;
begin
if token = html_st then
begin
TreeView1.Items.Clear;
TreeView1.Items.Add (nil, '
');token := yylex;
result := fh_st and fb_st and fhtml_en;
end
else result:=false;
end;
function TForm2. fglav: boolean;
begin
result := fhtml_st;
end;
procedure TForm2. Button1Click (Sender: TObject);
begin
tree_i := 0;
memo2.Clear;
yyclear;
yymemoinit (memo1,memo2,memo3,memo4);
yylineno:=0;
token:=yylex;
if fglav and (token=0) then
begin
StatusBar1.Panels[0]. Text := 'ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠΎΠ΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ';
StatusBar1.Panels[1]. Text := 'ΠΠ΅ΡΠ΅Π²ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΎ';
end
else
begin
StatusBar1.Panels[0]. Text := 'ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π°';
StatusBar1.Panels[1]. Text := 'ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Π΄Π΅ΡΠ΅Π²Π°';
showmessage ('ΠΡΠΈΠ±ΠΊΠ°!');
end;
end;
procedure TForm2. FormCreate (Sender: TObject);
begin
stack := TList. Create;
end;
procedure TForm2. FormShow (Sender: TObject);
begin
Button1.SetFocus;
end;
end.