Синтаксис языков программирования. Нисходящий синтаксический анализ, процедурная и автоматные реализации, страница 5

            Множества выбора правил:

 Правило № 

 Для нетерминала 

 Множество выбора: 

 0 

 SG 

 class 

 1 

 OneClass 

 class 

 2 

 NextClass 

 class 

 3 

 NextClass 

 main 

 4 

 Main 

 main 

 5 

 Idents 

 bool 

 char 

 float 

 integer 

 6 

 Idents 

 id 

 7 

 Funcs 

 id 

 8 

 MainOp`s 

 id 

 bool 

 char 

 delete 

 float 

 integer 

 9 

 Ident 

 bool 

 char 

 float 

 integer 

 10 

 OneFunc 

 id 

 11 

 NextFunc 

 id 

 12 

 NextFunc 

 } 

 13 

 MainOp 

 bool 

 char 

 float 

 integer 

 14 

 MainOp 

 delete 

 15 

 MainOp 

 id 

 16 

 NMainOp 

 id 

 bool 

 char 

 delete 

 float 

 integer 

 17 

 NMainOp 

 } 

 18 

 Type 

 integer 

 19 

 Type 

 float 

 20 

 Type 

 char 

 21 

 Type 

 bool 

 22 

 Par`s 

 bool 

 char 

 float 

 integer 

 23 

 Par`s 

 ) 

 24 

 Op`s 

 id 

 bool 

 char 

 float 

 integer 

 repeat 

 return 

 select 

 when 

 25 

 DOp 

 zn1 

 26 

 DOp 

 . 

 27 

 Par 

 bool 

 char 

 float 

 integer 

 28 

 NextP 

 , 

 29 

 NextP 

 ) 

 30 

 OneOp 

 id 

 31 

 OneOp 

 when 

 32 

 OneOp 

 bool 

 char 

 float 

 integer 

 33 

 OneOp 

 select 

 34 

 OneOp 

 repeat 

 35 

 OneOp 

 return 

 36 

 NextOp 

 id 

 bool 

 char 

 float 

 integer 

 repeat 

 return 

 select 

 when 

 37 

 NextOp 

 } 

 38 

 CM 

 new 

 39 

 CM 

 id 

 40 

 PPP 

 id 

 const1 

 const2 

 const3 

 const4 

 ( 

 41 

 PPP 

 ) 

 42 

 Exp 

 id 

 const1 

 const2 

 const3 

 const4 

 ( 

 43 

 OB 

 id 

 bool 

 char 

 float 

 integer 

 repeat 

 return 

 select 

 when 

 44 

 OB 

 { 

 45 

 ELSE 

 else 

 46 

 ELSE 

 id 

 bool 

 char 

 float 

 integer 

 repeat 

 return 

 select 

 when 

 case 

 end 

 } 

 47 

 Zn 

 zn1 

 48 

 Zn 

 ; 

 49 

 NS 

 case 

 50 

 NS 

 end 

 51 

 NPPP 

 , 

 52 

 NPPP 

 ) 

 53 

 A 

 id 

 const1 

 const2 

 const3 

 const4 

 ( 

 54 

 B 

 zn5 

 55 

 B 

 id 

 bool 

 char 

 float 

 integer 

 repeat 

 return 

 select 

 when 

 { 

 else 

 case 

 , 

 ) 

 ; 

 end 

 then 

 } 

 56 

 C 

 id 

 const1 

 const2 

 const3 

 const4 

 ( 

 57 

 D 

 zn6 

 58 

 D 

 zn1 

 59 

 D 

 id 

 bool 

 char 

 float 

 integer 

 repeat 

 return 

 select 

 when 

 { 

 else 

 case 

 , 

 zn5 

 ) 

 ; 

 end 

 then 

 } 

 60 

 E 

 id 

 const1 

 const2 

 const3 

 const4 

 ( 

 61 

 F 

 zn3 

 62 

 F 

 id 

 bool 

 char 

 float 

 integer 

 repeat 

 return 

 select 

 when 

 { 

 else 

 case 

 , 

 zn5 

 zn1 

 zn6 

 ) 

 ; 

 end 

 then 

 } 

 63 

 G 

 id 

 64 

 G 

 const1 

 65 

 G 

 const2 

 66 

 G 

 ( 

 67 

 G 

 const3 

 68 

 G 

 const4 

 69 

 H 

 zn4 

 70 

 H 

 id 

 bool 

 char 

 float 

 integer 

 repeat 

 return 

 select 

 when 

 { 

 else 

 case 

 , 

 zn5 

 zn1 

 zn6 

 zn3 

 ) 

 ; 

 end 

 then 

 } 

 71 

 RF 

 ( 

 72 

 RF 

 id 

 bool 

 char 

 float 

 integer 

 repeat 

 return 

 select 

 when 

 { 

 else 

 case 

 , 

 zn5 

 zn1 

 zn6 

 zn3 

 zn4 

 ) 

 ; 

 end 

 then 

 }