From b9c8d770644e08010e75d76f189820794594d8f5 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 19 Jun 2010 19:57:21 +0000 Subject: [PATCH] implemented SelectStatement git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/vbnet@5969 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../VBNet/Experimental/ExpressionFinder.atg | 10 + .../Src/Parser/VBNet/Experimental/Parser.cs | 883 ++++++++++-------- 2 files changed, 494 insertions(+), 399 deletions(-) diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.atg b/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.atg index c24961804f..cea574d1a5 100644 --- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.atg +++ b/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.atg @@ -516,6 +516,7 @@ Statement = | AddOrRemoveHandlerStatement | RaiseEventStatement | IfStatement + | SelectStatement | InvocationStatement . @@ -556,6 +557,15 @@ MultilineIfRest = "End" "If" . +SelectStatement = + "Select" [ "Case" ] Expression StatementTerminator + { + "Case" ( "Else" | [ "Is" ] Expression { "," [ "Is" ] Expression } ) + StatementTerminatorAndBlock + } + "End" "Select" +. + InvocationStatement = [ "Call" ] Expression . diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.cs b/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.cs index 22e54205d8..768e2c05a2 100644 --- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.cs +++ b/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.cs @@ -52,7 +52,7 @@ int currentState = 0; if (t == null) { currentState = 1; break; } if (t.kind == 172) { stateStack.Push(1); - goto case 237; + goto case 248; } else { goto case 2; } @@ -61,7 +61,7 @@ int currentState = 0; if (t == null) { currentState = 2; break; } if (t.kind == 136) { stateStack.Push(2); - goto case 234; + goto case 245; } else { goto case 3; } @@ -70,7 +70,7 @@ int currentState = 0; if (t == null) { currentState = 3; break; } if (t.kind == 39) { stateStack.Push(3); - goto case 167; + goto case 178; } else { goto case 4; } @@ -89,7 +89,7 @@ int currentState = 0; case 5: { if (t == null) { currentState = 5; break; } if (t.kind == 159) { - goto case 230; + goto case 241; } else { if (set[1, t.kind]) { goto case 7; @@ -107,7 +107,7 @@ int currentState = 0; if (t == null) { currentState = 7; break; } if (t.kind == 39) { stateStack.Push(7); - goto case 167; + goto case 178; } else { goto case 8; } @@ -119,7 +119,7 @@ int currentState = 0; break; } else { if (t.kind == 83 || t.kind == 154) { - goto case 229; + goto case 240; } else { Error(t); goto case 9; @@ -129,7 +129,7 @@ int currentState = 0; case 9: { if (t == null) { currentState = 9; break; } if (set[3, t.kind]) { - goto case 229; + goto case 240; } else { stateStack.Push(10); goto case 15; @@ -190,7 +190,7 @@ int currentState = 0; if (t == null) { currentState = 18; break; } if (t.kind == 39) { stateStack.Push(18); - goto case 167; + goto case 178; } else { goto case 19; } @@ -203,23 +203,23 @@ int currentState = 0; } else { if (set[6, t.kind]) { stateStack.Push(20); - goto case 222; + goto case 233; } else { if (t.kind == 126 || t.kind == 208) { stateStack.Push(20); - goto case 210; + goto case 221; } else { if (t.kind == 100) { stateStack.Push(20); - goto case 199; + goto case 210; } else { if (t.kind == 118) { stateStack.Push(20); - goto case 189; + goto case 200; } else { if (t.kind == 97) { stateStack.Push(20); - goto case 177; + goto case 188; } else { if (t.kind == 171) { stateStack.Push(20); @@ -259,7 +259,7 @@ int currentState = 0; } case 24: { stateStack.Push(25); - goto case 172; + goto case 183; } case 25: { if (t == null) { currentState = 25; break; } @@ -270,7 +270,7 @@ int currentState = 0; case 26: { if (t == null) { currentState = 26; break; } if (t.kind == 62) { - currentState = 166; + currentState = 177; break; } else { goto case 27; @@ -321,24 +321,28 @@ int currentState = 0; case 34: { if (t == null) { currentState = 34; break; } if (t.kind == 87 || t.kind == 104 || t.kind == 202) { - goto case 149; + goto case 160; } else { if (t.kind == 209 || t.kind == 231) { - goto case 144; + goto case 155; } else { if (t.kind == 55 || t.kind == 191) { - goto case 141; + goto case 152; } else { if (t.kind == 187) { - goto case 138; + goto case 149; } else { if (t.kind == 134) { - goto case 120; + goto case 131; } else { - if (set[9, t.kind]) { - goto case 35; + if (t.kind == 195) { + goto case 120; } else { - goto case 6; + if (set[9, t.kind]) { + goto case 35; + } else { + goto case 6; + } } } } @@ -1001,147 +1005,227 @@ int currentState = 0; } case 120: { if (t == null) { currentState = 120; break; } - Expect(134, t); // "If" + Expect(195, t); // "Select" currentState = 121; break; } case 121: { - stateStack.Push(122); - goto case 37; + if (t == null) { currentState = 121; break; } + if (t.kind == 73) { + currentState = 122; + break; + } else { + goto case 122; + } } case 122: { - if (t == null) { currentState = 122; break; } + stateStack.Push(123); + goto case 37; + } + case 123: { + stateStack.Push(124); + goto case 15; + } + case 124: { + if (t == null) { currentState = 124; break; } + if (t.kind == 73) { + currentState = 126; + break; + } else { + Expect(112, t); // "End" + currentState = 125; + break; + } + } + case 125: { + if (t == null) { currentState = 125; break; } + Expect(195, t); // "Select" + currentState = stateStack.Pop(); + break; + } + case 126: { + if (t == null) { currentState = 126; break; } + if (t.kind == 110) { + currentState = 127; + break; + } else { + if (set[26, t.kind]) { + goto case 128; + } else { + Error(t); + goto case 127; + } + } + } + case 127: { + stateStack.Push(124); + goto case 31; + } + case 128: { + if (t == null) { currentState = 128; break; } + if (t.kind == 143) { + currentState = 129; + break; + } else { + goto case 129; + } + } + case 129: { + stateStack.Push(130); + goto case 37; + } + case 130: { + if (t == null) { currentState = 130; break; } + if (t.kind == 23) { + currentState = 128; + break; + } else { + goto case 127; + } + } + case 131: { + if (t == null) { currentState = 131; break; } + Expect(134, t); // "If" + currentState = 132; + break; + } + case 132: { + stateStack.Push(133); + goto case 37; + } + case 133: { + if (t == null) { currentState = 133; break; } if (t.kind == 212) { - currentState = 131; + currentState = 142; break; } else { - goto case 123; + goto case 134; } } - case 123: { - if (t == null) { currentState = 123; break; } + case 134: { + if (t == null) { currentState = 134; break; } if (t.kind == 1 || t.kind == 22) { - goto case 124; + goto case 135; } else { goto case 6; } } - case 124: { - stateStack.Push(125); + case 135: { + stateStack.Push(136); goto case 31; } - case 125: { - if (t == null) { currentState = 125; break; } + case 136: { + if (t == null) { currentState = 136; break; } if (t.kind == 110 || t.kind == 111) { if (t.kind == 110) { - currentState = 130; + currentState = 141; break; } else { if (t.kind == 111) { - goto case 127; + goto case 138; } else { Error(t); - goto case 124; + goto case 135; } } } else { Expect(112, t); // "End" - currentState = 126; + currentState = 137; break; } } - case 126: { - if (t == null) { currentState = 126; break; } + case 137: { + if (t == null) { currentState = 137; break; } Expect(134, t); // "If" currentState = stateStack.Pop(); break; } - case 127: { - if (t == null) { currentState = 127; break; } - currentState = 128; + case 138: { + if (t == null) { currentState = 138; break; } + currentState = 139; break; } - case 128: { - stateStack.Push(129); + case 139: { + stateStack.Push(140); goto case 37; } - case 129: { - if (t == null) { currentState = 129; break; } + case 140: { + if (t == null) { currentState = 140; break; } if (t.kind == 212) { - currentState = 124; + currentState = 135; break; } else { - goto case 124; + goto case 135; } } - case 130: { - if (t == null) { currentState = 130; break; } + case 141: { + if (t == null) { currentState = 141; break; } if (t.kind == 134) { - goto case 127; + goto case 138; } else { - goto case 124; + goto case 135; } } - case 131: { - if (t == null) { currentState = 131; break; } + case 142: { + if (t == null) { currentState = 142; break; } if (set[8, t.kind]) { - goto case 132; + goto case 143; } else { - goto case 123; + goto case 134; } } - case 132: { - stateStack.Push(133); + case 143: { + stateStack.Push(144); goto case 34; } - case 133: { - if (t == null) { currentState = 133; break; } + case 144: { + if (t == null) { currentState = 144; break; } if (t.kind == 22) { - currentState = 132; + currentState = 143; break; } else { if (t.kind == 110) { - goto case 135; + goto case 146; } else { - goto case 134; + goto case 145; } } } - case 134: { - if (t == null) { currentState = 134; break; } + case 145: { + if (t == null) { currentState = 145; break; } Expect(1, t); // EOL currentState = stateStack.Pop(); break; } - case 135: { - if (t == null) { currentState = 135; break; } - currentState = 136; + case 146: { + if (t == null) { currentState = 146; break; } + currentState = 147; break; } - case 136: { - stateStack.Push(137); + case 147: { + stateStack.Push(148); goto case 34; } - case 137: { - if (t == null) { currentState = 137; break; } + case 148: { + if (t == null) { currentState = 148; break; } if (t.kind == 22) { - goto case 135; + goto case 146; } else { - goto case 134; + goto case 145; } } - case 138: { - if (t == null) { currentState = 138; break; } + case 149: { + if (t == null) { currentState = 149; break; } Expect(187, t); // "RaiseEvent" - currentState = 139; + currentState = 150; break; } - case 139: { - stateStack.Push(140); + case 150: { + stateStack.Push(151); goto case 16; } - case 140: { - if (t == null) { currentState = 140; break; } + case 151: { + if (t == null) { currentState = 151; break; } if (t.kind == 36) { currentState = 76; break; @@ -1150,105 +1234,105 @@ int currentState = 0; goto switchlbl; } } - case 141: { - if (t == null) { currentState = 141; break; } + case 152: { + if (t == null) { currentState = 152; break; } if (t.kind == 55 || t.kind == 191) { - currentState = 142; + currentState = 153; break; } else { Error(t); - goto case 142; + goto case 153; } } - case 142: { - stateStack.Push(143); + case 153: { + stateStack.Push(154); goto case 37; } - case 143: { - if (t == null) { currentState = 143; break; } + case 154: { + if (t == null) { currentState = 154; break; } Expect(23, t); // "," currentState = 36; break; } - case 144: { - if (t == null) { currentState = 144; break; } + case 155: { + if (t == null) { currentState = 155; break; } if (t.kind == 209 || t.kind == 231) { - currentState = 145; + currentState = 156; break; } else { Error(t); - goto case 145; + goto case 156; } } - case 145: { - stateStack.Push(146); + case 156: { + stateStack.Push(157); goto case 37; } - case 146: { - stateStack.Push(147); + case 157: { + stateStack.Push(158); goto case 31; } - case 147: { - if (t == null) { currentState = 147; break; } + case 158: { + if (t == null) { currentState = 158; break; } Expect(112, t); // "End" - currentState = 148; + currentState = 159; break; } - case 148: { - if (t == null) { currentState = 148; break; } + case 159: { + if (t == null) { currentState = 159; break; } if (t.kind == 209 || t.kind == 231) { goto case 16; } else { goto case 6; } } - case 149: { - if (t == null) { currentState = 149; break; } + case 160: { + if (t == null) { currentState = 160; break; } if (t.kind == 87 || t.kind == 104 || t.kind == 202) { - currentState = 150; + currentState = 161; break; } else { Error(t); - goto case 150; + goto case 161; } } - case 150: { - stateStack.Push(151); + case 161: { + stateStack.Push(162); goto case 84; } - case 151: { - if (t == null) { currentState = 151; break; } + case 162: { + if (t == null) { currentState = 162; break; } if (t.kind == 32) { - currentState = 152; + currentState = 163; break; } else { - goto case 152; + goto case 163; } } - case 152: { - if (t == null) { currentState = 152; break; } + case 163: { + if (t == null) { currentState = 163; break; } if (t.kind == 36) { - goto case 164; + goto case 175; } else { - goto case 153; + goto case 164; } } - case 153: { - if (t == null) { currentState = 153; break; } + case 164: { + if (t == null) { currentState = 164; break; } if (t.kind == 23) { - currentState = 158; + currentState = 169; break; } else { if (t.kind == 62) { - currentState = 155; + currentState = 166; break; } else { - goto case 154; + goto case 165; } } } - case 154: { - if (t == null) { currentState = 154; break; } + case 165: { + if (t == null) { currentState = 165; break; } if (t.kind == 21) { goto case 119; } else { @@ -1256,113 +1340,113 @@ int currentState = 0; goto switchlbl; } } - case 155: { - if (t == null) { currentState = 155; break; } + case 166: { + if (t == null) { currentState = 166; break; } if (t.kind == 161) { - goto case 157; + goto case 168; } else { - goto case 156; + goto case 167; } } - case 156: { - stateStack.Push(154); + case 167: { + stateStack.Push(165); goto case 69; } - case 157: { - if (t == null) { currentState = 157; break; } - currentState = 156; + case 168: { + if (t == null) { currentState = 168; break; } + currentState = 167; break; } - case 158: { - stateStack.Push(159); + case 169: { + stateStack.Push(170); goto case 84; } - case 159: { - if (t == null) { currentState = 159; break; } + case 170: { + if (t == null) { currentState = 170; break; } if (t.kind == 32) { - currentState = 160; + currentState = 171; break; } else { - goto case 160; + goto case 171; } } - case 160: { - if (t == null) { currentState = 160; break; } + case 171: { + if (t == null) { currentState = 171; break; } if (t.kind == 36) { - goto case 161; + goto case 172; } else { - goto case 153; + goto case 164; } } - case 161: { - if (t == null) { currentState = 161; break; } - currentState = 162; + case 172: { + if (t == null) { currentState = 172; break; } + currentState = 173; break; } - case 162: { - if (t == null) { currentState = 162; break; } + case 173: { + if (t == null) { currentState = 173; break; } if (t.kind == 23) { - goto case 161; + goto case 172; } else { - goto case 163; + goto case 174; } } - case 163: { - if (t == null) { currentState = 163; break; } + case 174: { + if (t == null) { currentState = 174; break; } Expect(37, t); // ")" - currentState = 153; + currentState = 164; break; } - case 164: { - if (t == null) { currentState = 164; break; } - currentState = 165; + case 175: { + if (t == null) { currentState = 175; break; } + currentState = 176; break; } - case 165: { - if (t == null) { currentState = 165; break; } + case 176: { + if (t == null) { currentState = 176; break; } if (t.kind == 23) { - goto case 164; + goto case 175; } else { - goto case 163; + goto case 174; } } - case 166: { - if (t == null) { currentState = 166; break; } + case 177: { + if (t == null) { currentState = 177; break; } if (t.kind == 39) { - stateStack.Push(166); - goto case 167; + stateStack.Push(177); + goto case 178; } else { stateStack.Push(27); goto case 69; } } - case 167: { - if (t == null) { currentState = 167; break; } + case 178: { + if (t == null) { currentState = 178; break; } Expect(39, t); // "<" - currentState = 168; + currentState = 179; break; } - case 168: { + case 179: { PushContext(Context.Attribute, t); - goto case 169; + goto case 180; } - case 169: { - if (t == null) { currentState = 169; break; } - if (set[26, t.kind]) { - currentState = 169; + case 180: { + if (t == null) { currentState = 180; break; } + if (set[27, t.kind]) { + currentState = 180; break; } else { Expect(38, t); // ">" - currentState = 170; + currentState = 181; break; } } - case 170: { + case 181: { PopContext(); - goto case 171; + goto case 182; } - case 171: { - if (t == null) { currentState = 171; break; } + case 182: { + if (t == null) { currentState = 182; break; } if (t.kind == 1) { goto case 16; } else { @@ -1370,334 +1454,334 @@ int currentState = 0; goto switchlbl; } } - case 172: { - stateStack.Push(173); - goto case 174; + case 183: { + stateStack.Push(184); + goto case 185; } - case 173: { - if (t == null) { currentState = 173; break; } + case 184: { + if (t == null) { currentState = 184; break; } if (t.kind == 23) { - currentState = 172; + currentState = 183; break; } else { currentState = stateStack.Pop(); goto switchlbl; } } - case 174: { - if (t == null) { currentState = 174; break; } + case 185: { + if (t == null) { currentState = 185; break; } if (t.kind == 39) { - stateStack.Push(174); - goto case 167; + stateStack.Push(185); + goto case 178; } else { - goto case 175; + goto case 186; } } - case 175: { - if (t == null) { currentState = 175; break; } - if (set[27, t.kind]) { - currentState = 175; + case 186: { + if (t == null) { currentState = 186; break; } + if (set[28, t.kind]) { + currentState = 186; break; } else { - stateStack.Push(176); + stateStack.Push(187); goto case 84; } } - case 176: { - if (t == null) { currentState = 176; break; } + case 187: { + if (t == null) { currentState = 187; break; } if (t.kind == 62) { - goto case 157; + goto case 168; } else { - goto case 154; + goto case 165; } } - case 177: { - if (t == null) { currentState = 177; break; } + case 188: { + if (t == null) { currentState = 188; break; } Expect(97, t); // "Custom" - currentState = 178; + currentState = 189; break; } - case 178: { - stateStack.Push(179); - goto case 189; + case 189: { + stateStack.Push(190); + goto case 200; } - case 179: { - if (t == null) { currentState = 179; break; } - if (set[28, t.kind]) { - goto case 181; + case 190: { + if (t == null) { currentState = 190; break; } + if (set[29, t.kind]) { + goto case 192; } else { Expect(112, t); // "End" - currentState = 180; + currentState = 191; break; } } - case 180: { - if (t == null) { currentState = 180; break; } + case 191: { + if (t == null) { currentState = 191; break; } Expect(118, t); // "Event" currentState = 30; break; } - case 181: { - if (t == null) { currentState = 181; break; } + case 192: { + if (t == null) { currentState = 192; break; } if (t.kind == 39) { - stateStack.Push(181); - goto case 167; + stateStack.Push(192); + goto case 178; } else { if (t.kind == 55 || t.kind == 187 || t.kind == 191) { - currentState = 182; + currentState = 193; break; } else { Error(t); - goto case 182; + goto case 193; } } } - case 182: { - if (t == null) { currentState = 182; break; } + case 193: { + if (t == null) { currentState = 193; break; } Expect(36, t); // "(" - currentState = 183; + currentState = 194; break; } - case 183: { - stateStack.Push(184); - goto case 172; + case 194: { + stateStack.Push(195); + goto case 183; } - case 184: { - if (t == null) { currentState = 184; break; } + case 195: { + if (t == null) { currentState = 195; break; } Expect(37, t); // ")" - currentState = 185; + currentState = 196; break; } - case 185: { - stateStack.Push(186); + case 196: { + stateStack.Push(197); goto case 31; } - case 186: { - if (t == null) { currentState = 186; break; } + case 197: { + if (t == null) { currentState = 197; break; } Expect(112, t); // "End" - currentState = 187; + currentState = 198; break; } - case 187: { - if (t == null) { currentState = 187; break; } + case 198: { + if (t == null) { currentState = 198; break; } if (t.kind == 55 || t.kind == 187 || t.kind == 191) { - currentState = 188; + currentState = 199; break; } else { Error(t); - goto case 188; + goto case 199; } } - case 188: { - stateStack.Push(179); + case 199: { + stateStack.Push(190); goto case 15; } - case 189: { - if (t == null) { currentState = 189; break; } + case 200: { + if (t == null) { currentState = 200; break; } Expect(118, t); // "Event" - currentState = 190; + currentState = 201; break; } - case 190: { - stateStack.Push(191); + case 201: { + stateStack.Push(202); goto case 84; } - case 191: { - if (t == null) { currentState = 191; break; } + case 202: { + if (t == null) { currentState = 202; break; } if (t.kind == 62) { - currentState = 198; + currentState = 209; break; } else { - if (set[29, t.kind]) { + if (set[30, t.kind]) { if (t.kind == 36) { - currentState = 196; + currentState = 207; break; } else { - goto case 192; + goto case 203; } } else { Error(t); - goto case 192; + goto case 203; } } } - case 192: { - if (t == null) { currentState = 192; break; } + case 203: { + if (t == null) { currentState = 203; break; } if (t.kind == 135) { - goto case 193; + goto case 204; } else { goto case 30; } } - case 193: { - if (t == null) { currentState = 193; break; } - currentState = 194; + case 204: { + if (t == null) { currentState = 204; break; } + currentState = 205; break; } - case 194: { - stateStack.Push(195); + case 205: { + stateStack.Push(206); goto case 69; } - case 195: { - if (t == null) { currentState = 195; break; } + case 206: { + if (t == null) { currentState = 206; break; } if (t.kind == 23) { - goto case 193; + goto case 204; } else { goto case 30; } } - case 196: { - if (t == null) { currentState = 196; break; } - if (set[30, t.kind]) { - stateStack.Push(197); - goto case 172; + case 207: { + if (t == null) { currentState = 207; break; } + if (set[31, t.kind]) { + stateStack.Push(208); + goto case 183; } else { - goto case 197; + goto case 208; } } - case 197: { - if (t == null) { currentState = 197; break; } + case 208: { + if (t == null) { currentState = 208; break; } Expect(37, t); // ")" - currentState = 192; + currentState = 203; break; } - case 198: { - stateStack.Push(192); + case 209: { + stateStack.Push(203); goto case 69; } - case 199: { - if (t == null) { currentState = 199; break; } + case 210: { + if (t == null) { currentState = 210; break; } Expect(100, t); // "Declare" - currentState = 200; + currentState = 211; break; } - case 200: { - if (t == null) { currentState = 200; break; } + case 211: { + if (t == null) { currentState = 211; break; } if (t.kind == 61 || t.kind == 65 || t.kind == 221) { - currentState = 201; + currentState = 212; break; } else { - goto case 201; + goto case 212; } } - case 201: { - if (t == null) { currentState = 201; break; } + case 212: { + if (t == null) { currentState = 212; break; } if (t.kind == 126 || t.kind == 208) { - currentState = 202; + currentState = 213; break; } else { Error(t); - goto case 202; + goto case 213; } } - case 202: { - stateStack.Push(203); + case 213: { + stateStack.Push(214); goto case 84; } - case 203: { - if (t == null) { currentState = 203; break; } + case 214: { + if (t == null) { currentState = 214; break; } Expect(148, t); // "Lib" - currentState = 204; + currentState = 215; break; } - case 204: { - if (t == null) { currentState = 204; break; } + case 215: { + if (t == null) { currentState = 215; break; } Expect(3, t); // LiteralString - currentState = 205; + currentState = 216; break; } - case 205: { - if (t == null) { currentState = 205; break; } + case 216: { + if (t == null) { currentState = 216; break; } if (t.kind == 58) { - currentState = 209; + currentState = 220; break; } else { - goto case 206; + goto case 217; } } - case 206: { - if (t == null) { currentState = 206; break; } + case 217: { + if (t == null) { currentState = 217; break; } if (t.kind == 36) { - currentState = 207; + currentState = 218; break; } else { goto case 30; } } - case 207: { - if (t == null) { currentState = 207; break; } - if (set[30, t.kind]) { - stateStack.Push(208); - goto case 172; + case 218: { + if (t == null) { currentState = 218; break; } + if (set[31, t.kind]) { + stateStack.Push(219); + goto case 183; } else { - goto case 208; + goto case 219; } } - case 208: { - if (t == null) { currentState = 208; break; } + case 219: { + if (t == null) { currentState = 219; break; } Expect(37, t); // ")" currentState = 30; break; } - case 209: { - if (t == null) { currentState = 209; break; } + case 220: { + if (t == null) { currentState = 220; break; } Expect(3, t); // LiteralString - currentState = 206; + currentState = 217; break; } - case 210: { - if (t == null) { currentState = 210; break; } + case 221: { + if (t == null) { currentState = 221; break; } if (t.kind == 126 || t.kind == 208) { - currentState = 211; + currentState = 222; break; } else { Error(t); - goto case 211; + goto case 222; } } - case 211: { + case 222: { PushContext(Context.IdentifierExpected, t); - goto case 212; + goto case 223; } - case 212: { - if (t == null) { currentState = 212; break; } - currentState = 213; + case 223: { + if (t == null) { currentState = 223; break; } + currentState = 224; break; } - case 213: { + case 224: { PopContext(); - goto case 214; + goto case 225; } - case 214: { - if (t == null) { currentState = 214; break; } + case 225: { + if (t == null) { currentState = 225; break; } if (t.kind == 36) { - currentState = 220; + currentState = 231; break; } else { - goto case 215; + goto case 226; } } - case 215: { - if (t == null) { currentState = 215; break; } + case 226: { + if (t == null) { currentState = 226; break; } if (t.kind == 62) { - currentState = 219; + currentState = 230; break; } else { - goto case 216; + goto case 227; } } - case 216: { - stateStack.Push(217); + case 227: { + stateStack.Push(228); goto case 31; } - case 217: { - if (t == null) { currentState = 217; break; } + case 228: { + if (t == null) { currentState = 228; break; } Expect(112, t); // "End" - currentState = 218; + currentState = 229; break; } - case 218: { - if (t == null) { currentState = 218; break; } + case 229: { + if (t == null) { currentState = 229; break; } if (t.kind == 126 || t.kind == 208) { currentState = 30; break; @@ -1706,139 +1790,139 @@ int currentState = 0; goto case 30; } } - case 219: { - stateStack.Push(216); + case 230: { + stateStack.Push(227); goto case 69; } - case 220: { - if (t == null) { currentState = 220; break; } - if (set[30, t.kind]) { - stateStack.Push(221); - goto case 172; + case 231: { + if (t == null) { currentState = 231; break; } + if (set[31, t.kind]) { + stateStack.Push(232); + goto case 183; } else { - goto case 221; + goto case 232; } } - case 221: { - if (t == null) { currentState = 221; break; } + case 232: { + if (t == null) { currentState = 232; break; } Expect(37, t); // ")" - currentState = 215; + currentState = 226; break; } - case 222: { - if (t == null) { currentState = 222; break; } + case 233: { + if (t == null) { currentState = 233; break; } if (t.kind == 87) { - currentState = 223; + currentState = 234; break; } else { - goto case 223; + goto case 234; } } - case 223: { - stateStack.Push(224); - goto case 228; + case 234: { + stateStack.Push(235); + goto case 239; } - case 224: { - if (t == null) { currentState = 224; break; } + case 235: { + if (t == null) { currentState = 235; break; } if (t.kind == 62) { - currentState = 227; + currentState = 238; break; } else { - goto case 225; + goto case 236; } } - case 225: { - if (t == null) { currentState = 225; break; } + case 236: { + if (t == null) { currentState = 236; break; } if (t.kind == 21) { - currentState = 226; + currentState = 237; break; } else { goto case 30; } } - case 226: { + case 237: { stateStack.Push(30); goto case 37; } - case 227: { - stateStack.Push(225); + case 238: { + stateStack.Push(236); goto case 69; } - case 228: { - if (t == null) { currentState = 228; break; } - if (set[31, t.kind]) { + case 239: { + if (t == null) { currentState = 239; break; } + if (set[32, t.kind]) { goto case 16; } else { goto case 6; } } - case 229: { - if (t == null) { currentState = 229; break; } + case 240: { + if (t == null) { currentState = 240; break; } currentState = 9; break; } - case 230: { - if (t == null) { currentState = 230; break; } + case 241: { + if (t == null) { currentState = 241; break; } Expect(159, t); // "Namespace" - currentState = 231; + currentState = 242; break; } - case 231: { - if (t == null) { currentState = 231; break; } + case 242: { + if (t == null) { currentState = 242; break; } if (set[3, t.kind]) { - currentState = 231; + currentState = 242; break; } else { - stateStack.Push(232); + stateStack.Push(243); goto case 15; } } - case 232: { - if (t == null) { currentState = 232; break; } - if (set[32, t.kind]) { - stateStack.Push(232); + case 243: { + if (t == null) { currentState = 243; break; } + if (set[33, t.kind]) { + stateStack.Push(243); goto case 5; } else { Expect(112, t); // "End" - currentState = 233; + currentState = 244; break; } } - case 233: { - if (t == null) { currentState = 233; break; } + case 244: { + if (t == null) { currentState = 244; break; } Expect(159, t); // "Namespace" currentState = 30; break; } - case 234: { - if (t == null) { currentState = 234; break; } + case 245: { + if (t == null) { currentState = 245; break; } Expect(136, t); // "Imports" - currentState = 235; + currentState = 246; break; } - case 235: { + case 246: { nextTokenIsPotentialStartOfXmlMode = true; - goto case 236; + goto case 247; } - case 236: { - if (t == null) { currentState = 236; break; } + case 247: { + if (t == null) { currentState = 247; break; } if (set[3, t.kind]) { - currentState = 236; + currentState = 247; break; } else { goto case 30; } } - case 237: { - if (t == null) { currentState = 237; break; } + case 248: { + if (t == null) { currentState = 248; break; } Expect(172, t); // "Option" - currentState = 238; + currentState = 249; break; } - case 238: { - if (t == null) { currentState = 238; break; } + case 249: { + if (t == null) { currentState = 249; break; } if (set[3, t.kind]) { - currentState = 238; + currentState = 249; break; } else { goto case 30; @@ -1862,8 +1946,8 @@ int currentState = 0; {x,x,T,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,T, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,T,x,x, x,T,x,T, T,T,T,x, x,T,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,T,T, x,x,x,x, x,x,x,x, x,T,x,x, T,x,x,T, T,x,T,x, x,x,x,x, x,x,x,T, x,x,T,x, T,x,x,x, T,T,T,x, x,x,x,x, T,x,x,x, x,x,T,x, x,x,T,x, x,T,T,x, x,x,x,x, x,x,x,x, T,x,x,x, T,x,x,x, x,x,T,x, x,T,x,T, x,x,x,T, x,T,T,T, x,T,T,T, x,T,T,x, x,x,x,x, x,x,x,x, x,T,T,x, x,T,x,x, x,x,x,x, T,x,T,T, x,x,x,x, x,x,x,x, x,T,T,x, x,x,x,x, T,x,T,x, T,x,x,x, x,x}, {x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, T,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, T,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, T,x,x,x, T,x,x,x, x,x,T,x, x,x,x,x, x,x,x,x, x,T,T,T, x,T,x,T, x,T,T,x, x,x,x,x, x,x,x,x, x,T,T,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,T,x, T,x,x,x, x,x}, {x,x,T,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,T,x,x, x,T,x,T, T,T,T,x, x,T,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,T,T, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,T, x,x,T,x, x,x,x,x, x,x,x,T, x,x,x,x, T,x,x,x, x,T,x,x, x,x,x,x, T,x,x,x, x,x,T,x, x,x,T,x, x,T,T,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,T,x,x, x,x,x,T, x,x,x,x, x,x,T,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,T,x,x, x,x,x,x, x,x,T,T, x,x,x,x, x,x,x,x, x,T,T,x, x,x,x,x, T,x,x,x, x,x,x,x, x,x}, - {x,T,T,T, T,T,T,T, T,T,T,x, x,x,x,x, x,T,x,x, x,x,T,x, x,x,x,T, T,T,T,x, x,x,x,x, T,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,T, T,T,x,x, x,T,x,T, T,T,T,x, x,T,x,x, T,x,x,T, T,T,T,T, T,x,T,x, T,T,T,T, x,T,T,T, T,T,T,T, T,T,x,x, x,x,x,T, T,T,T,x, x,x,x,x, x,x,x,T, x,x,x,x, T,T,x,x, x,T,x,x, T,x,x,x, T,x,T,x, x,x,T,x, x,x,T,x, x,T,T,x, x,x,x,x, T,x,x,x, x,T,T,x, x,T,x,T, T,x,x,x, x,T,x,x, x,x,x,T, x,x,x,x, x,x,T,x, x,x,x,T, x,x,x,T, x,x,x,x, x,x,x,x, x,T,T,x, x,x,x,x, x,T,T,T, x,x,x,T, x,T,T,x, x,T,T,x, x,x,x,x, T,x,x,T, x,x,x,T, x,x}, - {x,x,T,T, T,T,T,T, T,T,T,x, x,x,x,x, x,T,x,x, x,x,x,x, x,x,x,T, T,T,T,x, x,x,x,x, T,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,T, T,T,x,x, x,T,x,T, T,T,T,x, x,T,x,x, T,x,x,T, T,T,T,T, T,x,T,x, T,T,T,T, x,T,T,T, T,T,T,T, T,T,x,x, x,x,x,T, T,T,T,x, x,x,x,x, x,x,x,T, x,x,x,x, T,T,x,x, x,T,x,x, T,x,x,x, T,x,T,x, x,x,T,x, x,x,T,x, x,T,T,x, x,x,x,x, T,x,x,x, x,T,T,x, x,T,x,T, T,x,x,x, x,T,x,x, x,x,x,T, x,x,x,x, x,x,T,x, x,x,x,T, x,x,x,T, x,x,x,x, x,x,x,x, x,T,T,x, x,x,x,x, x,T,T,T, x,x,x,T, x,T,T,x, x,T,T,x, x,x,x,x, T,x,x,T, x,x,x,T, x,x}, + {x,T,T,T, T,T,T,T, T,T,T,x, x,x,x,x, x,T,x,x, x,x,T,x, x,x,x,T, T,T,T,x, x,x,x,x, T,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,T, T,T,x,x, x,T,x,T, T,T,T,x, x,T,x,x, T,x,x,T, T,T,T,T, T,x,T,x, T,T,T,T, x,T,T,T, T,T,T,T, T,T,x,x, x,x,x,T, T,T,T,x, x,x,x,x, x,x,x,T, x,x,x,x, T,T,x,x, x,T,x,x, T,x,x,x, T,x,T,x, x,x,T,x, x,x,T,x, x,T,T,x, x,x,x,x, T,x,x,x, x,T,T,x, x,T,x,T, T,x,x,x, x,T,x,x, x,x,x,T, x,x,x,x, x,x,T,x, x,x,x,T, x,x,x,T, x,x,x,T, x,x,x,x, x,T,T,x, x,x,x,x, x,T,T,T, x,x,x,T, x,T,T,x, x,T,T,x, x,x,x,x, T,x,x,T, x,x,x,T, x,x}, + {x,x,T,T, T,T,T,T, T,T,T,x, x,x,x,x, x,T,x,x, x,x,x,x, x,x,x,T, T,T,T,x, x,x,x,x, T,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,T, T,T,x,x, x,T,x,T, T,T,T,x, x,T,x,x, T,x,x,T, T,T,T,T, T,x,T,x, T,T,T,T, x,T,T,T, T,T,T,T, T,T,x,x, x,x,x,T, T,T,T,x, x,x,x,x, x,x,x,T, x,x,x,x, T,T,x,x, x,T,x,x, T,x,x,x, T,x,T,x, x,x,T,x, x,x,T,x, x,T,T,x, x,x,x,x, T,x,x,x, x,T,T,x, x,T,x,T, T,x,x,x, x,T,x,x, x,x,x,T, x,x,x,x, x,x,T,x, x,x,x,T, x,x,x,T, x,x,x,T, x,x,x,x, x,T,T,x, x,x,x,x, x,T,T,T, x,x,x,T, x,T,T,x, x,T,T,x, x,x,x,x, T,x,x,T, x,x,x,T, x,x}, {x,x,T,T, T,T,T,T, T,T,T,x, x,x,x,x, x,T,x,x, x,x,x,x, x,x,x,T, T,T,T,x, x,x,x,x, T,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, T,T,x,x, x,T,x,T, T,T,T,x, x,T,x,x, T,x,x,T, T,T,T,T, T,x,T,x, T,T,T,x, x,T,T,T, T,T,T,T, T,T,x,x, x,x,x,T, x,T,T,x, x,x,x,x, x,x,x,T, x,x,x,x, T,T,x,x, x,T,x,x, T,x,x,x, T,x,T,x, x,x,T,x, x,x,T,x, x,T,T,x, x,x,x,x, T,x,x,x, x,T,T,x, x,T,x,T, T,x,x,x, x,T,x,x, x,x,x,T, x,x,x,x, x,x,T,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,T,x,x, x,x,x,x, x,x,T,T, x,x,x,T, x,T,T,x, x,T,T,x, x,x,x,x, T,x,x,x, x,x,x,T, x,x}, {x,x,T,T, T,T,T,T, T,T,T,x, x,x,x,x, x,T,x,x, x,x,x,x, x,x,x,T, T,T,T,x, x,x,x,x, T,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, T,T,x,x, x,T,x,T, T,T,T,x, x,T,x,x, x,x,x,T, T,T,T,T, T,x,T,x, T,T,T,x, x,T,T,T, T,T,T,T, T,T,x,x, x,x,x,T, x,T,T,x, x,x,x,x, x,x,x,T, x,x,x,x, T,T,x,x, x,T,x,x, T,x,x,x, T,x,x,x, x,x,T,x, x,x,T,x, x,T,T,x, x,x,x,x, T,x,x,x, x,T,T,x, x,T,x,T, T,x,x,x, x,T,x,x, x,x,x,T, x,x,x,x, x,x,T,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,T,x,x, x,x,x,x, x,x,T,T, x,x,x,T, x,T,T,x, x,T,T,x, x,x,x,x, T,x,x,x, x,x,x,T, x,x}, {x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,T,x,x, T,T,T,x, x,T,T,T, x,T,x,x, x,x,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,x, x,x,x,T, T,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,T, T,x,x,x, x,T,x,x, x,T,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,T,x, T,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,T,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,T,x, x,x}, @@ -1881,6 +1965,7 @@ int currentState = 0; {x,T,T,T, T,T,T,T, T,T,T,T, T,T,T,x, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,x}, {x,T,T,T, T,T,T,T, T,T,x,T, T,T,T,x, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,x}, {x,T,T,T, T,T,T,T, T,T,T,x, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,x}, + {x,x,T,T, T,T,T,T, T,T,T,x, x,x,x,x, x,T,x,x, x,x,x,x, x,x,x,T, T,T,T,x, x,x,x,x, T,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, T,T,x,x, x,T,x,T, T,T,T,x, x,T,x,x, x,x,x,T, T,T,T,T, T,x,T,x, T,T,T,x, x,T,T,T, T,T,T,T, T,T,x,x, x,x,x,T, x,T,T,x, x,x,x,x, x,x,x,T, x,x,x,x, T,T,x,x, x,T,x,x, T,x,x,x, T,x,T,x, x,x,T,x, x,x,T,T, x,T,T,x, x,x,x,x, T,x,x,x, x,T,T,x, x,T,x,T, T,x,x,x, x,T,x,x, x,x,x,T, x,x,x,x, x,x,T,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,T,x,x, x,x,x,x, x,x,T,T, x,x,x,T, x,T,T,x, x,T,T,x, x,x,x,x, T,x,x,x, x,x,x,T, x,x}, {x,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,x,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,T,T,T, T,x}, {x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, T,x,x,T, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,T,x,x, x,x,x,x, T,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x}, {x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,T, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,T, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,T, x,x,x,T, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x, x,x},