Changeset 122
- Timestamp:
- Nov 29, 2017, 2:03:17 PM (7 years ago)
- Location:
- branches/generator
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/generator/Forms/UFormRule.lfm
r120 r122 45 45 Top = 80 46 46 Width = 640 47 ActivePage = TabSheet UsedBy47 ActivePage = TabSheet1 48 48 Anchors = [akTop, akLeft, akRight, akBottom] 49 TabIndex = 249 TabIndex = 0 50 50 TabOrder = 2 51 51 object TabSheet1: TTabSheet -
branches/generator/Forms/UFormRuleItem.lfm
r117 r122 42 42 'Non-terminal' 43 43 'Subitems' 44 'Terminal range' 44 45 ) 45 46 OnChange = ComboBoxTypeChange … … 60 61 Top = 88 61 62 Width = 632 62 ActivePage = TabSheet SubItems63 ActivePage = TabSheetTerminal 63 64 Anchors = [akTop, akLeft, akRight, akBottom] 64 65 ShowTabs = False 65 TabIndex = 266 TabIndex = 0 66 67 TabOrder = 3 67 68 object TabSheetTerminal: TTabSheet 68 69 Caption = 'Terminal' 69 ClientHeight = 16870 ClientHeight = 258 70 71 ClientWidth = 624 71 object Edit Name: TEdit72 object EditTerminal: TEdit 72 73 Left = 152 73 74 Height = 28 74 75 Top = 16 75 76 Width = 400 77 OnKeyPress = EditTerminalKeyPress 76 78 TabOrder = 0 77 79 end … … 79 81 Left = 8 80 82 Height = 20 81 Top = 2483 Top = 16 82 84 Width = 61 83 85 Caption = 'Terminal:' … … 87 89 object TabSheetNonTerminal: TTabSheet 88 90 Caption = 'NonTerminal' 89 ClientHeight = 16891 ClientHeight = 258 90 92 ClientWidth = 624 91 object ComboBoxNonTerminal: TComboBox92 Left = 15293 Height = 2894 Top = 1695 Width = 40496 ItemHeight = 2097 Style = csDropDownList98 TabOrder = 099 end100 93 object LabelNonTerminal: TLabel 101 94 Left = 8 102 95 Height = 20 103 Top = 2496 Top = 16 104 97 Width = 92 105 98 Caption = 'Non-terminal:' 106 99 ParentColor = False 107 100 end 101 object ListBox1: TListBox 102 Left = 128 103 Height = 232 104 Top = 16 105 Width = 484 106 Anchors = [akTop, akLeft, akRight, akBottom] 107 ItemHeight = 0 108 TabOrder = 0 109 end 108 110 end 109 111 object TabSheetSubItems: TTabSheet 110 112 Caption = 'SubItems' 113 end 114 object TabSheetTerminalRange: TTabSheet 115 Caption = 'TabSheetTerminalRange' 116 ClientHeight = 258 117 ClientWidth = 624 118 object LabelTerminal1: TLabel 119 Left = 8 120 Height = 20 121 Top = 16 122 Width = 97 123 Caption = 'Terminal from:' 124 ParentColor = False 125 end 126 object EditTerminalFrom: TEdit 127 Left = 152 128 Height = 28 129 Top = 16 130 Width = 400 131 OnKeyPress = EditTerminalKeyPress 132 TabOrder = 0 133 end 134 object LabelTerminal2: TLabel 135 Left = 8 136 Height = 20 137 Top = 56 138 Width = 79 139 Caption = 'Terminal to:' 140 ParentColor = False 141 end 142 object EditTerminalTo: TEdit 143 Left = 152 144 Height = 28 145 Top = 56 146 Width = 400 147 OnKeyPress = EditTerminalKeyPress 148 TabOrder = 1 149 end 111 150 end 112 151 end -
branches/generator/Forms/UFormRuleItem.pas
r118 r122 18 18 CheckBoxOptional: TCheckBox; 19 19 CheckBoxRepetitive: TCheckBox; 20 ComboBoxNonTerminal: TComboBox;21 20 ComboBoxType: TComboBox; 22 EditName: TEdit; 21 EditTerminal: TEdit; 22 EditTerminalFrom: TEdit; 23 EditTerminalTo: TEdit; 23 24 Label2: TLabel; 24 25 LabelNonTerminal: TLabel; 25 26 LabelTerminal: TLabel; 27 LabelTerminal1: TLabel; 28 LabelTerminal2: TLabel; 29 ListBox1: TListBox; 26 30 PageControl1: TPageControl; 31 TabSheetTerminalRange: TTabSheet; 27 32 TabSheetTerminal: TTabSheet; 28 33 TabSheetNonTerminal: TTabSheet; 29 34 TabSheetSubItems: TTabSheet; 30 35 procedure ComboBoxTypeChange(Sender: TObject); 36 procedure EditTerminalKeyPress(Sender: TObject; var Key: char); 31 37 procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); 32 38 procedure FormCreate(Sender: TObject); … … 62 68 end; 63 69 70 procedure TFormRuleItem.EditTerminalKeyPress(Sender: TObject; var Key: char); 71 begin 72 if Key = #13 then ButtonOk.Click; 73 end; 74 64 75 procedure TFormRuleItem.FormClose(Sender: TObject; var CloseAction: TCloseAction 65 76 ); … … 84 95 begin 85 96 Core.PersistentForm1.Load(Self); 97 case RuleItem.RuleItemType of 98 ritTerminal: EditTerminal.SetFocus; 99 ritNonTerminal: ListBox1.SetFocus; 100 ritSubItems: TFormRuleItems(FormRuleItems).ListView1.SetFocus; 101 end; 86 102 end; 103 87 104 88 105 procedure TFormRuleItem.ReloadNonTerminals(Grammer: TGrammer); … … 90 107 Rule: TRule; 91 108 begin 92 ComboBoxNonTerminal.Items.Clear;109 ListBox1.Items.Clear; 93 110 for Rule in Grammer.Rules do begin 94 ComboBoxNonTerminal.Items.AddObject(Rule.Name, Rule);111 ListBox1.Items.AddObject(Rule.Name, Rule); 95 112 end; 96 ComboBoxNonTerminal.Sorted := True;113 ListBox1.Sorted := True; 97 114 end; 98 115 … … 100 117 begin 101 118 PageControl1.PageIndex := Integer(RuleItem.RuleItemType); 102 Edit Name.Visible := RuleItem.RuleItemType = ritTerminal;119 EditTerminal.Visible := RuleItem.RuleItemType = ritTerminal; 103 120 LabelTerminal.Visible := RuleItem.RuleItemType = ritTerminal; 104 ComboBoxNonTerminal.Visible := RuleItem.RuleItemType = ritNonTerminal;121 ListBox1.Visible := RuleItem.RuleItemType = ritNonTerminal; 105 122 LabelNonTerminal.Visible := RuleItem.RuleItemType = ritNonTerminal; 106 123 end; … … 111 128 ReloadNonTerminals(RuleItem.Grammer); 112 129 ComboBoxType.ItemIndex := Integer(RuleItem.RuleItemType); 113 ComboBoxNonTerminal.ItemIndex := ComboBoxNonTerminal.Items.IndexOfObject(RuleItem.NonTerminal); 114 EditName.Text := RuleItem.Terminal; 130 ListBox1.ItemIndex := ListBox1.Items.IndexOfObject(RuleItem.NonTerminal); 131 EditTerminal.Text := RuleItem.Terminal; 132 EditTerminalFrom.Text := RuleItem.TerminalFrom; 133 EditTerminalTo.Text := RuleItem.TerminalTo; 115 134 CheckBoxOptional.Checked := RuleItem.Optional; 116 135 CheckBoxRepetitive.Checked := RuleItem.Repetitive; … … 123 142 TFormRuleItems(FormRuleItems).SaveData(RuleItem.SubItems); 124 143 RuleItem.RuleItemType := TRuleItemType(ComboBoxType.ItemIndex); 125 if RuleItem.RuleItemType = ritTerminal then RuleItem.Terminal := EditName.Text 126 else if RuleItem.RuleItemType = ritNonTerminal then 127 RuleItem.NonTerminal := TRule(ComboBoxNonTerminal.Items.Objects[ComboBoxNonTerminal.ItemIndex]); 144 RuleItem.Terminal := EditTerminal.Text; 145 RuleItem.TerminalFrom := EditTerminalFrom.Text; 146 RuleItem.TerminalTo := EditTerminalTo.Text; 147 if ListBox1.ItemIndex <> -1 then 148 RuleItem.NonTerminal := TRule(ListBox1.Items.Objects[ListBox1.ItemIndex]) 149 else RuleItem.NonTerminal := nil; 128 150 RuleItem.Optional := CheckBoxOptional.Checked; 129 151 RuleItem.Repetitive := CheckBoxRepetitive.Checked; -
branches/generator/Forms/UFormRuleItems.lfm
r116 r122 10 10 OnShow = FormShow 11 11 LCLVersion = '1.6.4.0' 12 object ListView : TListView12 object ListView1: TListView 13 13 Left = 8 14 14 Height = 392 … … 28 28 TabOrder = 0 29 29 ViewStyle = vsReport 30 OnData = ListView Data31 OnDblClick = ListView DblClick32 OnKeyPress = ListView KeyPress33 OnSelectItem = ListView SelectItem30 OnData = ListView1Data 31 OnDblClick = ListView1DblClick 32 OnKeyPress = ListView1KeyPress 33 OnSelectItem = ListView1SelectItem 34 34 end 35 35 object ToolBar1: TToolBar … … 299 299 ImageIndex = 0 300 300 OnExecute = AAddExecute 301 ShortCut = 45 301 302 end 302 303 object AModify: TAction … … 309 310 ImageIndex = 1 310 311 OnExecute = ARemoveExecute 312 ShortCut = 46 311 313 end 312 314 object AMoveUp: TAction … … 314 316 ImageIndex = 7 315 317 OnExecute = AMoveUpExecute 318 ShortCut = 16422 316 319 end 317 320 object AMoveDown: TAction … … 319 322 ImageIndex = 6 320 323 OnExecute = AMoveDownExecute 324 ShortCut = 16424 321 325 end 322 326 end -
branches/generator/Forms/UFormRuleItems.pas
r119 r122 22 22 ComboBox1: TComboBox; 23 23 Label1: TLabel; 24 ListView : TListView;24 ListView1: TListView; 25 25 MenuItem1: TMenuItem; 26 26 MenuItem2: TMenuItem; … … 42 42 procedure FormCreate(Sender: TObject); 43 43 procedure FormShow(Sender: TObject); 44 procedure ListView Data(Sender: TObject; Item: TListItem);45 procedure ListView DblClick(Sender: TObject);46 procedure ListView KeyPress(Sender: TObject; var Key: char);47 procedure ListView SelectItem(Sender: TObject; Item: TListItem;44 procedure ListView1Data(Sender: TObject; Item: TListItem); 45 procedure ListView1DblClick(Sender: TObject); 46 procedure ListView1KeyPress(Sender: TObject; var Key: char); 47 procedure ListView1SelectItem(Sender: TObject; Item: TListItem; 48 48 Selected: Boolean); 49 49 private … … 68 68 { TFormRuleItems } 69 69 70 procedure TFormRuleItems.ListView Data(Sender: TObject; Item: TListItem);70 procedure TFormRuleItems.ListView1Data(Sender: TObject; Item: TListItem); 71 71 begin 72 72 if (Item.Index >= 0) and (Item.Index < RuleItems.Count) then begin … … 97 97 RuleItem: TRuleItem; 98 98 begin 99 if Assigned(ListView .Selected) then begin100 RuleItem := TRuleItem(ListView .Selected.Data);99 if Assigned(ListView1.Selected) then begin 100 RuleItem := TRuleItem(ListView1.Selected.Data); 101 101 FormRuleItem := TFormRuleItem.Create(nil); 102 102 FormRuleItem.LoadData(RuleItem); … … 111 111 procedure TFormRuleItems.AMoveDownExecute(Sender: TObject); 112 112 begin 113 RuleItems.ParentRule.Items.Move(ListView .Selected.Index, ListView.Selected.Index + 1);114 ListView .ItemIndex := ListView.Selected.Index + 1;113 RuleItems.ParentRule.Items.Move(ListView1.Selected.Index, ListView1.Selected.Index + 1); 114 ListView1.ItemIndex := ListView1.Selected.Index + 1; 115 115 ReloadList; 116 116 end; … … 118 118 procedure TFormRuleItems.AMoveUpExecute(Sender: TObject); 119 119 begin 120 RuleItems.ParentRule.Items.Move(ListView .Selected.Index, ListView.Selected.Index - 1);121 ListView .ItemIndex := ListView.Selected.Index - 1;120 RuleItems.ParentRule.Items.Move(ListView1.Selected.Index, ListView1.Selected.Index - 1); 121 ListView1.ItemIndex := ListView1.Selected.Index - 1; 122 122 ReloadList; 123 123 end; … … 125 125 procedure TFormRuleItems.ARemoveExecute(Sender: TObject); 126 126 var 127 I tem: TListItem;127 I: Integer; 128 128 begin 129 for Item in ListView.Items do 130 if Item.Selected then 131 RuleItems.ParentRule.Items.Remove(TRuleItem(Item.Data)); 129 if MessageDlg('Remove item(s)', 'Do you want to remove selected item(s)?', 130 mtConfirmation, mbYesNo, 0) = mrYes then 131 for I := ListView1.Items.Count - 1 downto 0 do 132 if ListView1.Items[I].Selected then 133 RuleItems.ParentRule.Items.Remove(TRuleItem(ListView1.Items[I].Data)); 132 134 ReloadList; 133 135 end; … … 144 146 end; 145 147 146 procedure TFormRuleItems.ListView DblClick(Sender: TObject);148 procedure TFormRuleItems.ListView1DblClick(Sender: TObject); 147 149 begin 148 150 AModify.Execute; 149 151 end; 150 152 151 procedure TFormRuleItems.ListView KeyPress(Sender: TObject; var Key: char);153 procedure TFormRuleItems.ListView1KeyPress(Sender: TObject; var Key: char); 152 154 begin 153 155 if Key = #13 then AModify.Execute; 154 156 end; 155 157 156 procedure TFormRuleItems.ListView SelectItem(Sender: TObject; Item: TListItem;158 procedure TFormRuleItems.ListView1SelectItem(Sender: TObject; Item: TListItem; 157 159 Selected: Boolean); 158 160 begin … … 162 164 procedure TFormRuleItems.UpdateInterface; 163 165 begin 164 AModify.Enabled := Assigned(ListView .Selected);165 ARemove.Enabled := Assigned(ListView .Selected);166 AMoveUp.Enabled := Assigned(ListView .Selected) and (ListView.Selected.Index > 0);167 AMoveDown.Enabled := Assigned(ListView .Selected) and (ListView.Selected.Index < (ListView.Items.Count - 1));166 AModify.Enabled := Assigned(ListView1.Selected); 167 ARemove.Enabled := Assigned(ListView1.Selected); 168 AMoveUp.Enabled := Assigned(ListView1.Selected) and (ListView1.Selected.Index > 0); 169 AMoveDown.Enabled := Assigned(ListView1.Selected) and (ListView1.Selected.Index < (ListView1.Items.Count - 1)); 168 170 end; 169 171 170 172 procedure TFormRuleItems.ReloadList; 171 173 begin 172 if Assigned(RuleItems) then ListView .Items.Count := RuleItems.Count173 else ListView .Items.Count := 0;174 ListView .Refresh;174 if Assigned(RuleItems) then ListView1.Items.Count := RuleItems.Count 175 else ListView1.Items.Count := 0; 176 ListView1.Refresh; 175 177 end; 176 178 -
branches/generator/Forms/UFormRules.lfm
r121 r122 1 1 object FormRules: TFormRules 2 Left = 3 862 Left = 348 3 3 Height = 611 4 Top = 2 214 Top = 230 5 5 Width = 857 6 6 Caption = 'Rules' … … 101 101 ImageIndex = 0 102 102 OnExecute = AAddExecute 103 ShortCut = 45 103 104 end 104 105 object AModify: TAction -
branches/generator/Forms/UFormRules.pas
r121 r122 116 116 procedure TFormRules.ARemoveExecute(Sender: TObject); 117 117 var 118 Item: TListItem; 119 begin 120 for Item in ListView1.Items do 121 if Item.Selected then 122 Rules.Remove(TRule(Item.Data)); 118 I: Integer; 119 begin 120 if MessageDlg('Remove item(s)', 'Do you want to remove selected item(s)?', 121 mtConfirmation, mbYesNo, 0) = mrYes then 122 for I := ListView1.Items.Count - 1 downto 0 do 123 if ListView1.Items[I].Selected then 124 Rules.Remove(TRule(ListView1.Items[I].Data)); 123 125 ReloadList; 124 126 end; -
branches/generator/URules.pas
r120 r122 14 14 TRuleItems = class; 15 15 16 TRuleItemType = (ritTerminal, ritNonTerminal, ritSubItems );16 TRuleItemType = (ritTerminal, ritNonTerminal, ritSubItems, ritTerminalRange); 17 17 18 18 { TRuleItem } … … 29 29 RuleItemType: TRuleItemType; 30 30 Terminal: string; 31 TerminalFrom: string; 32 TerminalTo: string; 31 33 NonTerminalName: string; 32 34 NonTerminal: TRule; … … 342 344 SubItems.SaveToXmlNode(SubItemsNode); 343 345 end; 346 ritTerminalRange: begin 347 WriteString(Node, 'TerminalFrom', TerminalFrom); 348 WriteString(Node, 'TerminalTo', TerminalTo); 349 end; 344 350 end; 345 351 end; … … 351 357 ritNonTerminal: Result := NonTerminal.Name; 352 358 ritSubItems: Result := '(' + SubItems.GetString + ')'; 359 ritTerminalRange: Result := '(' + TerminalFrom + ' .. ' + TerminalTo + ')'; 353 360 end; 354 361 if Optional then Result := '+' + Result; … … 381 388 ritNonTerminal: Result := Length(NonTerminal.Name); 382 389 ritSubItems: Result := SubItems.GetCharLength; 390 ritTerminalRange: Result := Max(Length(TerminalFrom), Length(TerminalTo)) 383 391 end; 384 392 end; … … 405 413 if Assigned(SubItemsNode) then SubItems.LoadFromXmlNode(SubItemsNode); 406 414 end; 415 ritTerminalRange: begin 416 TerminalFrom := ReadString(Node, 'TerminalFrom', ''); 417 TerminalTo := ReadString(Node, 'TerminalTo', ''); 418 end; 407 419 end; 408 420 end; -
branches/generator/pascal.grm
r119 r122 862 862 <Type>1</Type> 863 863 <RuleItem> 864 <Type>0</Type> 865 <Optional>0</Optional> 866 <Repetitive>0</Repetitive> 867 <Terminal>0</Terminal> 868 </RuleItem> 869 <RuleItem> 870 <Type>0</Type> 871 <Optional>0</Optional> 872 <Repetitive>0</Repetitive> 873 <Terminal>1</Terminal> 874 </RuleItem> 875 <RuleItem> 876 <Type>0</Type> 877 <Optional>0</Optional> 878 <Repetitive>0</Repetitive> 879 <Terminal>2</Terminal> 880 </RuleItem> 881 <RuleItem> 882 <Type>0</Type> 883 <Optional>0</Optional> 884 <Repetitive>0</Repetitive> 885 <Terminal>3</Terminal> 886 </RuleItem> 887 <RuleItem> 888 <Type>0</Type> 889 <Optional>0</Optional> 890 <Repetitive>0</Repetitive> 891 <Terminal>4</Terminal> 892 </RuleItem> 893 <RuleItem> 894 <Type>0</Type> 895 <Optional>0</Optional> 896 <Repetitive>0</Repetitive> 897 <Terminal>5</Terminal> 898 </RuleItem> 899 <RuleItem> 900 <Type>0</Type> 901 <Optional>0</Optional> 902 <Repetitive>0</Repetitive> 903 <Terminal>6</Terminal> 904 </RuleItem> 905 <RuleItem> 906 <Type>0</Type> 907 <Optional>0</Optional> 908 <Repetitive>0</Repetitive> 909 <Terminal>7</Terminal> 910 </RuleItem> 911 <RuleItem> 912 <Type>0</Type> 913 <Optional>0</Optional> 914 <Repetitive>0</Repetitive> 915 <Terminal>8</Terminal> 916 </RuleItem> 917 <RuleItem> 918 <Type>0</Type> 919 <Optional>0</Optional> 920 <Repetitive>0</Repetitive> 921 <Terminal>9</Terminal> 864 <Type>3</Type> 865 <Optional>0</Optional> 866 <Repetitive>0</Repetitive> 867 <TerminalFrom>0</TerminalFrom> 868 <TerminalTo>9</TerminalTo> 922 869 </RuleItem> 923 870 </RuleItems> … … 1043 990 <Type>1</Type> 1044 991 <RuleItem> 1045 <Type>0</Type> 1046 <Optional>0</Optional> 1047 <Repetitive>0</Repetitive> 1048 <Terminal>a</Terminal> 1049 </RuleItem> 1050 <RuleItem> 1051 <Type>0</Type> 1052 <Optional>0</Optional> 1053 <Repetitive>0</Repetitive> 1054 <Terminal>b</Terminal> 1055 </RuleItem> 1056 <RuleItem> 1057 <Type>0</Type> 1058 <Optional>0</Optional> 1059 <Repetitive>0</Repetitive> 1060 <Terminal>c</Terminal> 1061 </RuleItem> 1062 <RuleItem> 1063 <Type>0</Type> 1064 <Optional>0</Optional> 1065 <Repetitive>0</Repetitive> 1066 <Terminal>d</Terminal> 1067 </RuleItem> 1068 <RuleItem> 1069 <Type>0</Type> 1070 <Optional>0</Optional> 1071 <Repetitive>0</Repetitive> 1072 <Terminal>e</Terminal> 1073 </RuleItem> 1074 <RuleItem> 1075 <Type>0</Type> 1076 <Optional>0</Optional> 1077 <Repetitive>0</Repetitive> 1078 <Terminal>f</Terminal> 1079 </RuleItem> 1080 <RuleItem> 1081 <Type>0</Type> 1082 <Optional>0</Optional> 1083 <Repetitive>0</Repetitive> 1084 <Terminal>g</Terminal> 1085 </RuleItem> 1086 <RuleItem> 1087 <Type>0</Type> 1088 <Optional>0</Optional> 1089 <Repetitive>0</Repetitive> 1090 <Terminal>h</Terminal> 1091 </RuleItem> 1092 <RuleItem> 1093 <Type>0</Type> 1094 <Optional>0</Optional> 1095 <Repetitive>0</Repetitive> 1096 <Terminal>i</Terminal> 1097 </RuleItem> 1098 <RuleItem> 1099 <Type>0</Type> 1100 <Optional>0</Optional> 1101 <Repetitive>0</Repetitive> 1102 <Terminal>j</Terminal> 1103 </RuleItem> 1104 <RuleItem> 1105 <Type>0</Type> 1106 <Optional>0</Optional> 1107 <Repetitive>0</Repetitive> 1108 <Terminal>k</Terminal> 1109 </RuleItem> 1110 <RuleItem> 1111 <Type>0</Type> 1112 <Optional>0</Optional> 1113 <Repetitive>0</Repetitive> 1114 <Terminal>l</Terminal> 1115 </RuleItem> 1116 <RuleItem> 1117 <Type>0</Type> 1118 <Optional>0</Optional> 1119 <Repetitive>0</Repetitive> 1120 <Terminal>m</Terminal> 1121 </RuleItem> 1122 <RuleItem> 1123 <Type>0</Type> 1124 <Optional>0</Optional> 1125 <Repetitive>0</Repetitive> 1126 <Terminal>n</Terminal> 1127 </RuleItem> 1128 <RuleItem> 1129 <Type>0</Type> 1130 <Optional>0</Optional> 1131 <Repetitive>0</Repetitive> 1132 <Terminal>o</Terminal> 1133 </RuleItem> 1134 <RuleItem> 1135 <Type>0</Type> 1136 <Optional>0</Optional> 1137 <Repetitive>0</Repetitive> 1138 <Terminal>p</Terminal> 1139 </RuleItem> 1140 <RuleItem> 1141 <Type>0</Type> 1142 <Optional>0</Optional> 1143 <Repetitive>0</Repetitive> 1144 <Terminal>q</Terminal> 1145 </RuleItem> 1146 <RuleItem> 1147 <Type>0</Type> 1148 <Optional>0</Optional> 1149 <Repetitive>0</Repetitive> 1150 <Terminal>r</Terminal> 1151 </RuleItem> 1152 <RuleItem> 1153 <Type>0</Type> 1154 <Optional>0</Optional> 1155 <Repetitive>0</Repetitive> 1156 <Terminal>s</Terminal> 1157 </RuleItem> 1158 <RuleItem> 1159 <Type>0</Type> 1160 <Optional>0</Optional> 1161 <Repetitive>0</Repetitive> 1162 <Terminal>t</Terminal> 1163 </RuleItem> 1164 <RuleItem> 1165 <Type>0</Type> 1166 <Optional>0</Optional> 1167 <Repetitive>0</Repetitive> 1168 <Terminal>u</Terminal> 1169 </RuleItem> 1170 <RuleItem> 1171 <Type>0</Type> 1172 <Optional>0</Optional> 1173 <Repetitive>0</Repetitive> 1174 <Terminal>v</Terminal> 1175 </RuleItem> 1176 <RuleItem> 1177 <Type>0</Type> 1178 <Optional>0</Optional> 1179 <Repetitive>0</Repetitive> 1180 <Terminal>w</Terminal> 1181 </RuleItem> 1182 <RuleItem> 1183 <Type>0</Type> 1184 <Optional>0</Optional> 1185 <Repetitive>0</Repetitive> 1186 <Terminal>x</Terminal> 1187 </RuleItem> 1188 <RuleItem> 1189 <Type>0</Type> 1190 <Optional>0</Optional> 1191 <Repetitive>0</Repetitive> 1192 <Terminal>y</Terminal> 1193 </RuleItem> 1194 <RuleItem> 1195 <Type>0</Type> 1196 <Optional>0</Optional> 1197 <Repetitive>0</Repetitive> 1198 <Terminal>z</Terminal> 992 <Type>3</Type> 993 <Optional>0</Optional> 994 <Repetitive>0</Repetitive> 995 <TerminalFrom>a</TerminalFrom> 996 <TerminalTo>z</TerminalTo> 997 </RuleItem> 998 <RuleItem> 999 <Type>3</Type> 1000 <Optional>0</Optional> 1001 <Repetitive>0</Repetitive> 1002 <TerminalFrom>A</TerminalFrom> 1003 <TerminalTo>Z</TerminalTo> 1199 1004 </RuleItem> 1200 1005 </RuleItems>
Note:
See TracChangeset
for help on using the changeset viewer.