@ -453,31 +453,28 @@ IsGlobalAttrTarget()) {
void UsingDirective ( ) {
void UsingDirective ( ) {
#line 562 "cs.ATG"
#line 562 "cs.ATG"
string qualident = null , aliasident = null ;
string qualident = null ; TypeReference aliasedType = null ;
Expect ( 1 1 9 ) ;
Expect ( 1 1 9 ) ;
#line 565 "cs.ATG"
#line 565 "cs.ATG"
Point startPos = t . Location ;
Point startPos = t . Location ;
if (
Qualident (
#line 566 "cs.ATG"
#line 566 "cs.ATG"
IsAssignment ( ) ) {
out qualident ) ;
if ( la . kind = = 3 ) {
lexer . NextToken ( ) ;
lexer . NextToken ( ) ;
NonArrayType (
#line 566 "cs.ATG"
aliasident = t . val ;
Expect ( 3 ) ;
}
Qualident (
#line 567 "cs.ATG"
#line 567 "cs.ATG"
out qualident ) ;
out aliasedType ) ;
}
Expect ( 1 1 ) ;
Expect ( 1 1 ) ;
#line 569 "cs.ATG"
#line 569 "cs.ATG"
if ( qualident ! = null & & qualident . Length > 0 ) {
if ( qualident ! = null & & qualident . Length > 0 ) {
INode node ;
INode node ;
if ( aliasident ! = null ) {
if ( aliasedType ! = null ) {
node = new UsingDeclaration ( alias ident , qu alident ) ;
node = new UsingDeclaration ( qu alident, aliase dTyp e ) ;
} else {
} else {
node = new UsingDeclaration ( qualident ) ;
node = new UsingDeclaration ( qualident ) ;
}
}
@ -614,6 +611,46 @@ DotAndIdent()) {
qualident = qualidentBuilder . ToString ( ) ;
qualident = qualidentBuilder . ToString ( ) ;
}
}
void NonArrayType (
#line 920 "cs.ATG"
out TypeReference type ) {
#line 922 "cs.ATG"
string name ;
int pointer = 0 ;
type = null ;
if ( la . kind = = 1 | | la . kind = = 8 9 | | la . kind = = 1 0 6 ) {
ClassType (
#line 927 "cs.ATG"
out type ) ;
} else if ( StartOf ( 4 ) ) {
SimpleType (
#line 928 "cs.ATG"
out name ) ;
#line 928 "cs.ATG"
type = new TypeReference ( name ) ;
} else if ( la . kind = = 1 2 1 ) {
lexer . NextToken ( ) ;
Expect ( 6 ) ;
#line 929 "cs.ATG"
pointer = 1 ; type = new TypeReference ( "void" ) ;
} else SynErr ( 1 2 6 ) ;
while (
#line 932 "cs.ATG"
IsPointer ( ) ) {
Expect ( 6 ) ;
#line 933 "cs.ATG"
+ + pointer ;
}
#line 935 "cs.ATG"
if ( type ! = null ) { type . PointerNestingLevel = pointer ; }
}
void Attribute (
void Attribute (
#line 601 "cs.ATG"
#line 601 "cs.ATG"
out ASTAttribute attribute ) {
out ASTAttribute attribute ) {
@ -649,7 +686,7 @@ List<Expression> positional, List<NamedArgumentExpression> named) {
Expression expr ;
Expression expr ;
Expect ( 1 9 ) ;
Expect ( 1 9 ) ;
if ( StartOf ( 4 ) ) {
if ( StartOf ( 5 ) ) {
if (
if (
#line 621 "cs.ATG"
#line 621 "cs.ATG"
IsAssignment ( ) ) {
IsAssignment ( ) ) {
@ -684,11 +721,11 @@ IsAssignment()) {
#line 633 "cs.ATG"
#line 633 "cs.ATG"
name = t . val ;
name = t . val ;
Expect ( 3 ) ;
Expect ( 3 ) ;
} else if ( StartOf ( 4 ) ) {
} else if ( StartOf ( 5 ) ) {
#line 635 "cs.ATG"
#line 635 "cs.ATG"
if ( nameFound ) Error ( "no positional argument after named argument" ) ;
if ( nameFound ) Error ( "no positional argument after named argument" ) ;
} else SynErr ( 1 2 6 ) ;
} else SynErr ( 1 2 7 ) ;
Expr (
Expr (
#line 636 "cs.ATG"
#line 636 "cs.ATG"
out expr ) ;
out expr ) ;
@ -712,7 +749,7 @@ out Expression expr) {
UnaryExpr (
UnaryExpr (
#line 1880 "cs.ATG"
#line 1880 "cs.ATG"
out expr ) ;
out expr ) ;
if ( StartOf ( 5 ) ) {
if ( StartOf ( 6 ) ) {
ConditionalOrExpr (
ConditionalOrExpr (
#line 1883 "cs.ATG"
#line 1883 "cs.ATG"
ref expr ) ;
ref expr ) ;
@ -729,7 +766,7 @@ out expr2);
#line 1883 "cs.ATG"
#line 1883 "cs.ATG"
expr = new ConditionalExpression ( expr , expr1 , expr2 ) ;
expr = new ConditionalExpression ( expr , expr1 , expr2 ) ;
}
}
} else if ( StartOf ( 6 ) ) {
} else if ( StartOf ( 7 ) ) {
#line 1885 "cs.ATG"
#line 1885 "cs.ATG"
AssignmentOperatorType op ; Expression val ;
AssignmentOperatorType op ; Expression val ;
@ -742,7 +779,7 @@ out val);
#line 1885 "cs.ATG"
#line 1885 "cs.ATG"
expr = new AssignmentExpression ( expr , op , val ) ;
expr = new AssignmentExpression ( expr , op , val ) ;
} else SynErr ( 1 2 7 ) ;
} else SynErr ( 1 2 8 ) ;
}
}
void AttributeSection (
void AttributeSection (
@ -889,7 +926,7 @@ Modifiers m) {
if ( t . val = = "partial" ) { m . Add ( Modifier . Partial , t . Location ) ; }
if ( t . val = = "partial" ) { m . Add ( Modifier . Partial , t . Location ) ; }
break ;
break ;
}
}
default : SynErr ( 1 2 8 ) ; break ;
default : SynErr ( 1 2 9 ) ; break ;
}
}
}
}
@ -952,7 +989,7 @@ templates);
newType . EndLocation = t . Location ;
newType . EndLocation = t . Location ;
compilationUnit . BlockEnd ( ) ;
compilationUnit . BlockEnd ( ) ;
} else if ( StartOf ( 7 ) ) {
} else if ( StartOf ( 8 ) ) {
#line 734 "cs.ATG"
#line 734 "cs.ATG"
m . Check ( Modifier . StructsInterfacesEnumsDelegates ) ;
m . Check ( Modifier . StructsInterfacesEnumsDelegates ) ;
@ -1091,14 +1128,14 @@ NotVoidPointer()) {
#line 798 "cs.ATG"
#line 798 "cs.ATG"
delegateDeclr . ReturnType = new TypeReference ( "void" , 0 , null ) ;
delegateDeclr . ReturnType = new TypeReference ( "void" , 0 , null ) ;
} else if ( StartOf ( 8 ) ) {
} else if ( StartOf ( 9 ) ) {
Type (
Type (
#line 799 "cs.ATG"
#line 799 "cs.ATG"
out type ) ;
out type ) ;
#line 799 "cs.ATG"
#line 799 "cs.ATG"
delegateDeclr . ReturnType = type ;
delegateDeclr . ReturnType = type ;
} else SynErr ( 1 2 9 ) ;
} else SynErr ( 1 3 0 ) ;
Expect ( 1 ) ;
Expect ( 1 ) ;
#line 801 "cs.ATG"
#line 801 "cs.ATG"
@ -1109,7 +1146,7 @@ out type);
templates ) ;
templates ) ;
}
}
Expect ( 1 9 ) ;
Expect ( 1 9 ) ;
if ( StartOf ( 9 ) ) {
if ( StartOf ( 1 0 ) ) {
FormalParameterList (
FormalParameterList (
#line 806 "cs.ATG"
#line 806 "cs.ATG"
p ) ;
p ) ;
@ -1132,7 +1169,7 @@ templates);
compilationUnit . AddChild ( delegateDeclr ) ;
compilationUnit . AddChild ( delegateDeclr ) ;
}
}
} else SynErr ( 1 3 0 ) ;
} else SynErr ( 1 3 1 ) ;
}
}
void TypeParameterList (
void TypeParameterList (
@ -1253,7 +1290,7 @@ out type);
#line 838 "cs.ATG"
#line 838 "cs.ATG"
AttributeSection section ;
AttributeSection section ;
Expect ( 1 5 ) ;
Expect ( 1 5 ) ;
while ( StartOf ( 1 0 ) ) {
while ( StartOf ( 1 1 ) ) {
#line 841 "cs.ATG"
#line 841 "cs.ATG"
List < AttributeSection > attributes = new List < AttributeSection > ( ) ;
List < AttributeSection > attributes = new List < AttributeSection > ( ) ;
@ -1267,7 +1304,7 @@ out section);
#line 844 "cs.ATG"
#line 844 "cs.ATG"
attributes . Add ( section ) ;
attributes . Add ( section ) ;
}
}
while ( StartOf ( 1 1 ) ) {
while ( StartOf ( 1 2 ) ) {
MemberModifier (
MemberModifier (
#line 845 "cs.ATG"
#line 845 "cs.ATG"
m ) ;
m ) ;
@ -1310,7 +1347,7 @@ out typeRef);
#line 862 "cs.ATG"
#line 862 "cs.ATG"
AttributeSection section ;
AttributeSection section ;
Expect ( 1 5 ) ;
Expect ( 1 5 ) ;
while ( StartOf ( 1 2 ) ) {
while ( StartOf ( 1 3 ) ) {
#line 865 "cs.ATG"
#line 865 "cs.ATG"
List < AttributeSection > attributes = new List < AttributeSection > ( ) ;
List < AttributeSection > attributes = new List < AttributeSection > ( ) ;
@ -1324,7 +1361,7 @@ out section);
#line 868 "cs.ATG"
#line 868 "cs.ATG"
attributes . Add ( section ) ;
attributes . Add ( section ) ;
}
}
while ( StartOf ( 1 1 ) ) {
while ( StartOf ( 1 2 ) ) {
MemberModifier (
MemberModifier (
#line 869 "cs.ATG"
#line 869 "cs.ATG"
m ) ;
m ) ;
@ -1364,7 +1401,7 @@ out typeRef);
void InterfaceBody ( ) {
void InterfaceBody ( ) {
Expect ( 1 5 ) ;
Expect ( 1 5 ) ;
while ( StartOf ( 1 3 ) ) {
while ( StartOf ( 1 4 ) ) {
InterfaceMemberDecl ( ) ;
InterfaceMemberDecl ( ) ;
}
}
Expect ( 1 6 ) ;
Expect ( 1 6 ) ;
@ -1440,7 +1477,7 @@ out string name) {
name = "char" ;
name = "char" ;
break ;
break ;
}
}
default : SynErr ( 1 3 1 ) ; break ;
default : SynErr ( 1 3 2 ) ; break ;
}
}
}
}
@ -1487,7 +1524,7 @@ out TypeReference type) {
ClassType (
ClassType (
#line 903 "cs.ATG"
#line 903 "cs.ATG"
out type ) ;
out type ) ;
} else if ( StartOf ( 1 4 ) ) {
} else if ( StartOf ( 4 ) ) {
SimpleType (
SimpleType (
#line 904 "cs.ATG"
#line 904 "cs.ATG"
out name ) ;
out name ) ;
@ -1500,7 +1537,7 @@ out name);
#line 905 "cs.ATG"
#line 905 "cs.ATG"
pointer = 1 ; type = new TypeReference ( "void" ) ;
pointer = 1 ; type = new TypeReference ( "void" ) ;
} else SynErr ( 1 3 2 ) ;
} else SynErr ( 1 3 3 ) ;
#line 906 "cs.ATG"
#line 906 "cs.ATG"
List < int > r = new List < int > ( ) ;
List < int > r = new List < int > ( ) ;
@ -1527,7 +1564,7 @@ IsPointerOrDims()) {
#line 910 "cs.ATG"
#line 910 "cs.ATG"
r . Add ( i ) ;
r . Add ( i ) ;
} else SynErr ( 1 3 3 ) ;
} else SynErr ( 1 3 4 ) ;
}
}
#line 913 "cs.ATG"
#line 913 "cs.ATG"
@ -1592,7 +1629,7 @@ out p);
#line 968 "cs.ATG"
#line 968 "cs.ATG"
paramsFound = true ; p . Attributes = attributes ; parameter . Add ( p ) ;
paramsFound = true ; p . Attributes = attributes ; parameter . Add ( p ) ;
} else SynErr ( 1 3 4 ) ;
} else SynErr ( 1 3 5 ) ;
}
}
} else if ( la . kind = = 9 3 ) {
} else if ( la . kind = = 9 3 ) {
ParameterArray (
ParameterArray (
@ -1601,7 +1638,7 @@ out p);
#line 971 "cs.ATG"
#line 971 "cs.ATG"
p . Attributes = attributes ; parameter . Add ( p ) ;
p . Attributes = attributes ; parameter . Add ( p ) ;
} else SynErr ( 1 3 5 ) ;
} else SynErr ( 1 3 6 ) ;
}
}
void ClassType (
void ClassType (
@ -1627,7 +1664,7 @@ out r);
#line 1014 "cs.ATG"
#line 1014 "cs.ATG"
typeRef = new TypeReference ( "string" ) ;
typeRef = new TypeReference ( "string" ) ;
} else SynErr ( 1 3 6 ) ;
} else SynErr ( 1 3 7 ) ;
}
}
void TypeName (
void TypeName (
@ -1771,7 +1808,7 @@ Modifiers m) {
m . Add ( Modifier . Volatile , t . Location ) ;
m . Add ( Modifier . Volatile , t . Location ) ;
break ;
break ;
}
}
default : SynErr ( 1 3 7 ) ; break ;
default : SynErr ( 1 3 8 ) ; break ;
}
}
}
}
@ -1808,13 +1845,13 @@ m, attributes);
out stmt ) ;
out stmt ) ;
} else if ( la . kind = = 1 1 ) {
} else if ( la . kind = = 1 1 ) {
lexer . NextToken ( ) ;
lexer . NextToken ( ) ;
} else SynErr ( 1 3 8 ) ;
} else SynErr ( 1 3 9 ) ;
#line 1296 "cs.ATG"
#line 1296 "cs.ATG"
d . Body = ( BlockStatement ) stmt ;
d . Body = ( BlockStatement ) stmt ;
compilationUnit . AddChild ( d ) ;
compilationUnit . AddChild ( d ) ;
} else SynErr ( 1 3 9 ) ;
} else SynErr ( 1 4 0 ) ;
}
}
void StructMemberDecl (
void StructMemberDecl (
@ -1895,7 +1932,7 @@ out qualident);
templates ) ;
templates ) ;
}
}
Expect ( 1 9 ) ;
Expect ( 1 9 ) ;
if ( StartOf ( 9 ) ) {
if ( StartOf ( 1 0 ) ) {
FormalParameterList (
FormalParameterList (
#line 1081 "cs.ATG"
#line 1081 "cs.ATG"
p ) ;
p ) ;
@ -1927,7 +1964,7 @@ templates);
out stmt ) ;
out stmt ) ;
} else if ( la . kind = = 1 1 ) {
} else if ( la . kind = = 1 1 ) {
lexer . NextToken ( ) ;
lexer . NextToken ( ) ;
} else SynErr ( 1 4 0 ) ;
} else SynErr ( 1 4 1 ) ;
#line 1096 "cs.ATG"
#line 1096 "cs.ATG"
compilationUnit . BlockEnd ( ) ;
compilationUnit . BlockEnd ( ) ;
@ -1987,7 +2024,7 @@ out addBlock, out removeBlock);
#line 1115 "cs.ATG"
#line 1115 "cs.ATG"
eventDecl . BodyEnd = t . EndLocation ;
eventDecl . BodyEnd = t . EndLocation ;
} else SynErr ( 1 4 1 ) ;
} else SynErr ( 1 4 2 ) ;
#line 1116 "cs.ATG"
#line 1116 "cs.ATG"
compilationUnit . BlockEnd ( ) ;
compilationUnit . BlockEnd ( ) ;
@ -2006,7 +2043,7 @@ IdentAndLPar()) {
#line 1124 "cs.ATG"
#line 1124 "cs.ATG"
string name = t . val ; Point startPos = t . Location ;
string name = t . val ; Point startPos = t . Location ;
Expect ( 1 9 ) ;
Expect ( 1 9 ) ;
if ( StartOf ( 9 ) ) {
if ( StartOf ( 1 0 ) ) {
#line 1124 "cs.ATG"
#line 1124 "cs.ATG"
m . Check ( Modifier . Constructors ) ;
m . Check ( Modifier . Constructors ) ;
@ -2038,7 +2075,7 @@ out init);
out stmt ) ;
out stmt ) ;
} else if ( la . kind = = 1 1 ) {
} else if ( la . kind = = 1 1 ) {
lexer . NextToken ( ) ;
lexer . NextToken ( ) ;
} else SynErr ( 1 4 2 ) ;
} else SynErr ( 1 4 3 ) ;
#line 1136 "cs.ATG"
#line 1136 "cs.ATG"
cd . Body = ( BlockStatement ) stmt ; compilationUnit . AddChild ( cd ) ;
cd . Body = ( BlockStatement ) stmt ; compilationUnit . AddChild ( cd ) ;
@ -2089,7 +2126,7 @@ out stmt);
#line 1148 "cs.ATG"
#line 1148 "cs.ATG"
stmt = null ;
stmt = null ;
} else SynErr ( 1 4 3 ) ;
} else SynErr ( 1 4 4 ) ;
#line 1151 "cs.ATG"
#line 1151 "cs.ATG"
List < ParameterDeclarationExpression > parameters = new List < ParameterDeclarationExpression > ( ) ;
List < ParameterDeclarationExpression > parameters = new List < ParameterDeclarationExpression > ( ) ;
@ -2109,7 +2146,7 @@ out stmt);
TypeDecl (
TypeDecl (
#line 1166 "cs.ATG"
#line 1166 "cs.ATG"
m , attributes ) ;
m , attributes ) ;
} else if ( StartOf ( 8 ) ) {
} else if ( StartOf ( 9 ) ) {
Type (
Type (
#line 1167 "cs.ATG"
#line 1167 "cs.ATG"
out type ) ;
out type ) ;
@ -2148,7 +2185,7 @@ out secondType);
#line 1175 "cs.ATG"
#line 1175 "cs.ATG"
secondName = t . val ;
secondName = t . val ;
} else if ( la . kind = = 2 0 ) {
} else if ( la . kind = = 2 0 ) {
} else SynErr ( 1 4 4 ) ;
} else SynErr ( 1 4 5 ) ;
#line 1183 "cs.ATG"
#line 1183 "cs.ATG"
Point endPos = t . Location ;
Point endPos = t . Location ;
@ -2159,7 +2196,7 @@ out secondType);
out stmt ) ;
out stmt ) ;
} else if ( la . kind = = 1 1 ) {
} else if ( la . kind = = 1 1 ) {
lexer . NextToken ( ) ;
lexer . NextToken ( ) ;
} else SynErr ( 1 4 5 ) ;
} else SynErr ( 1 4 6 ) ;
#line 1186 "cs.ATG"
#line 1186 "cs.ATG"
List < ParameterDeclarationExpression > parameters = new List < ParameterDeclarationExpression > ( ) ;
List < ParameterDeclarationExpression > parameters = new List < ParameterDeclarationExpression > ( ) ;
@ -2251,7 +2288,7 @@ out qualident);
templates ) ;
templates ) ;
}
}
Expect ( 1 9 ) ;
Expect ( 1 9 ) ;
if ( StartOf ( 9 ) ) {
if ( StartOf ( 1 0 ) ) {
FormalParameterList (
FormalParameterList (
#line 1233 "cs.ATG"
#line 1233 "cs.ATG"
p ) ;
p ) ;
@ -2282,7 +2319,7 @@ templates);
out stmt ) ;
out stmt ) ;
} else if ( la . kind = = 1 1 ) {
} else if ( la . kind = = 1 1 ) {
lexer . NextToken ( ) ;
lexer . NextToken ( ) ;
} else SynErr ( 1 4 6 ) ;
} else SynErr ( 1 4 7 ) ;
#line 1245 "cs.ATG"
#line 1245 "cs.ATG"
methodDeclaration . Body = ( BlockStatement ) stmt ;
methodDeclaration . Body = ( BlockStatement ) stmt ;
@ -2345,9 +2382,9 @@ out getRegion, out setRegion);
indexer . SetRegion = setRegion ;
indexer . SetRegion = setRegion ;
compilationUnit . AddChild ( indexer ) ;
compilationUnit . AddChild ( indexer ) ;
} else SynErr ( 1 4 7 ) ;
} else SynErr ( 1 4 8 ) ;
} else SynErr ( 1 4 8 ) ;
} else SynErr ( 1 4 9 ) ;
} else SynErr ( 1 4 9 ) ;
} else SynErr ( 1 5 0 ) ;
}
}
void InterfaceMemberDecl ( ) {
void InterfaceMemberDecl ( ) {
@ -2396,7 +2433,7 @@ NotVoidPointer()) {
templates ) ;
templates ) ;
}
}
Expect ( 1 9 ) ;
Expect ( 1 9 ) ;
if ( StartOf ( 9 ) ) {
if ( StartOf ( 1 0 ) ) {
FormalParameterList (
FormalParameterList (
#line 1322 "cs.ATG"
#line 1322 "cs.ATG"
parameters ) ;
parameters ) ;
@ -2419,7 +2456,7 @@ templates);
compilationUnit . AddChild ( md ) ;
compilationUnit . AddChild ( md ) ;
} else if ( StartOf ( 1 8 ) ) {
} else if ( StartOf ( 1 8 ) ) {
if ( StartOf ( 8 ) ) {
if ( StartOf ( 9 ) ) {
Type (
Type (
#line 1332 "cs.ATG"
#line 1332 "cs.ATG"
out type ) ;
out type ) ;
@ -2438,7 +2475,7 @@ out type);
templates ) ;
templates ) ;
}
}
Expect ( 1 9 ) ;
Expect ( 1 9 ) ;
if ( StartOf ( 9 ) ) {
if ( StartOf ( 1 0 ) ) {
FormalParameterList (
FormalParameterList (
#line 1339 "cs.ATG"
#line 1339 "cs.ATG"
parameters ) ;
parameters ) ;
@ -2475,7 +2512,7 @@ out getBlock, out setBlock);
#line 1350 "cs.ATG"
#line 1350 "cs.ATG"
pd . GetRegion = getBlock ; pd . SetRegion = setBlock ; pd . StartLocation = startLocation ; pd . EndLocation = qualIdentEndLocation ; pd . BodyStart = bodyStart ; pd . BodyEnd = t . EndLocation ;
pd . GetRegion = getBlock ; pd . SetRegion = setBlock ; pd . StartLocation = startLocation ; pd . EndLocation = qualIdentEndLocation ; pd . BodyStart = bodyStart ; pd . BodyEnd = t . EndLocation ;
} else SynErr ( 1 5 0 ) ;
} else SynErr ( 1 5 1 ) ;
} else if ( la . kind = = 1 0 9 ) {
} else if ( la . kind = = 1 0 9 ) {
lexer . NextToken ( ) ;
lexer . NextToken ( ) ;
Expect ( 1 7 ) ;
Expect ( 1 7 ) ;
@ -2500,7 +2537,7 @@ out getBlock, out setBlock);
#line 1354 "cs.ATG"
#line 1354 "cs.ATG"
id . GetRegion = getBlock ; id . SetRegion = setBlock ; id . StartLocation = startLocation ; id . EndLocation = bracketEndLocation ; id . BodyStart = bodyStart ; id . BodyEnd = t . EndLocation ;
id . GetRegion = getBlock ; id . SetRegion = setBlock ; id . StartLocation = startLocation ; id . EndLocation = bracketEndLocation ; id . BodyStart = bodyStart ; id . BodyEnd = t . EndLocation ;
} else SynErr ( 1 5 1 ) ;
} else SynErr ( 1 5 2 ) ;
} else {
} else {
lexer . NextToken ( ) ;
lexer . NextToken ( ) ;
@ -2520,7 +2557,7 @@ out type);
#line 1360 "cs.ATG"
#line 1360 "cs.ATG"
ed . StartLocation = startLocation ; ed . EndLocation = t . EndLocation ;
ed . StartLocation = startLocation ; ed . EndLocation = t . EndLocation ;
}
}
} else SynErr ( 1 5 2 ) ;
} else SynErr ( 1 5 3 ) ;
}
}
void EnumMemberDecl (
void EnumMemberDecl (
@ -2590,47 +2627,7 @@ out name);
#line 945 "cs.ATG"
#line 945 "cs.ATG"
name = "bool" ;
name = "bool" ;
} else SynErr ( 1 5 3 ) ;
}
void NonArrayType (
#line 920 "cs.ATG"
out TypeReference type ) {
#line 922 "cs.ATG"
string name ;
int pointer = 0 ;
type = null ;
if ( la . kind = = 1 | | la . kind = = 8 9 | | la . kind = = 1 0 6 ) {
ClassType (
#line 927 "cs.ATG"
out type ) ;
} else if ( StartOf ( 1 4 ) ) {
SimpleType (
#line 928 "cs.ATG"
out name ) ;
#line 928 "cs.ATG"
type = new TypeReference ( name ) ;
} else if ( la . kind = = 1 2 1 ) {
lexer . NextToken ( ) ;
Expect ( 6 ) ;
#line 929 "cs.ATG"
pointer = 1 ; type = new TypeReference ( "void" ) ;
} else SynErr ( 1 5 4 ) ;
} else SynErr ( 1 5 4 ) ;
while (
#line 932 "cs.ATG"
IsPointer ( ) ) {
Expect ( 6 ) ;
#line 933 "cs.ATG"
+ + pointer ;
}
#line 935 "cs.ATG"
if ( type ! = null ) { type . PointerNestingLevel = pointer ; }
}
}
void FixedParameter (
void FixedParameter (
@ -3234,7 +3231,7 @@ out Expression initializerExpression) {
#line 1528 "cs.ATG"
#line 1528 "cs.ATG"
TypeReference type = null ; Expression expr = null ; initializerExpression = null ;
TypeReference type = null ; Expression expr = null ; initializerExpression = null ;
if ( StartOf ( 4 ) ) {
if ( StartOf ( 5 ) ) {
Expr (
Expr (
#line 1530 "cs.ATG"
#line 1530 "cs.ATG"
out initializerExpression ) ;
out initializerExpression ) ;
@ -3668,19 +3665,19 @@ out expr);
#line 1698 "cs.ATG"
#line 1698 "cs.ATG"
ArrayList initializer = null ; ArrayList iterator = null ;
ArrayList initializer = null ; ArrayList iterator = null ;
Expect ( 1 9 ) ;
Expect ( 1 9 ) ;
if ( StartOf ( 4 ) ) {
if ( StartOf ( 5 ) ) {
ForInitializer (
ForInitializer (
#line 1699 "cs.ATG"
#line 1699 "cs.ATG"
out initializer ) ;
out initializer ) ;
}
}
Expect ( 1 1 ) ;
Expect ( 1 1 ) ;
if ( StartOf ( 4 ) ) {
if ( StartOf ( 5 ) ) {
Expr (
Expr (
#line 1700 "cs.ATG"
#line 1700 "cs.ATG"
out expr ) ;
out expr ) ;
}
}
Expect ( 1 1 ) ;
Expect ( 1 1 ) ;
if ( StartOf ( 4 ) ) {
if ( StartOf ( 5 ) ) {
ForIterator (
ForIterator (
#line 1701 "cs.ATG"
#line 1701 "cs.ATG"
out iterator ) ;
out iterator ) ;
@ -3752,7 +3749,7 @@ out expr);
Expect ( 1 1 ) ;
Expect ( 1 1 ) ;
} else if ( la . kind = = 9 9 ) {
} else if ( la . kind = = 9 9 ) {
lexer . NextToken ( ) ;
lexer . NextToken ( ) ;
if ( StartOf ( 4 ) ) {
if ( StartOf ( 5 ) ) {
Expr (
Expr (
#line 1714 "cs.ATG"
#line 1714 "cs.ATG"
out expr ) ;
out expr ) ;
@ -3763,7 +3760,7 @@ out expr);
statement = new ReturnStatement ( expr ) ;
statement = new ReturnStatement ( expr ) ;
} else if ( la . kind = = 1 1 0 ) {
} else if ( la . kind = = 1 1 0 ) {
lexer . NextToken ( ) ;
lexer . NextToken ( ) ;
if ( StartOf ( 4 ) ) {
if ( StartOf ( 5 ) ) {
Expr (
Expr (
#line 1715 "cs.ATG"
#line 1715 "cs.ATG"
out expr ) ;
out expr ) ;
@ -3772,7 +3769,7 @@ out expr);
#line 1715 "cs.ATG"
#line 1715 "cs.ATG"
statement = new ThrowStatement ( expr ) ;
statement = new ThrowStatement ( expr ) ;
} else if ( StartOf ( 4 ) ) {
} else if ( StartOf ( 5 ) ) {
StatementExpr (
StatementExpr (
#line 1717 "cs.ATG"
#line 1717 "cs.ATG"
out statement ) ;
out statement ) ;
@ -3917,7 +3914,7 @@ out stmt);
#line 1750 "cs.ATG"
#line 1750 "cs.ATG"
initializer . Add ( stmt ) ;
initializer . Add ( stmt ) ;
} else if ( StartOf ( 4 ) ) {
} else if ( StartOf ( 5 ) ) {
StatementExpr (
StatementExpr (
#line 1751 "cs.ATG"
#line 1751 "cs.ATG"
out stmt ) ;
out stmt ) ;
@ -4008,7 +4005,7 @@ out Statement stmt) {
UnaryExpr (
UnaryExpr (
#line 1869 "cs.ATG"
#line 1869 "cs.ATG"
out expr ) ;
out expr ) ;
if ( StartOf ( 6 ) ) {
if ( StartOf ( 7 ) ) {
#line 1872 "cs.ATG"
#line 1872 "cs.ATG"
AssignmentOperatorType op ; Expression val ;
AssignmentOperatorType op ; Expression val ;
@ -4079,7 +4076,7 @@ IsLocalVarDecl()) {
LocalVariableDecl (
LocalVariableDecl (
#line 1849 "cs.ATG"
#line 1849 "cs.ATG"
out stmt ) ;
out stmt ) ;
} else if ( StartOf ( 4 ) ) {
} else if ( StartOf ( 5 ) ) {
Expr (
Expr (
#line 1850 "cs.ATG"
#line 1850 "cs.ATG"
out expr ) ;
out expr ) ;
@ -4558,7 +4555,7 @@ out expr);
int dims = 0 ;
int dims = 0 ;
ArrayList rank = new ArrayList ( ) ;
ArrayList rank = new ArrayList ( ) ;
ArrayList parameterExpression = new ArrayList ( ) ;
ArrayList parameterExpression = new ArrayList ( ) ;
if ( StartOf ( 4 ) ) {
if ( StartOf ( 5 ) ) {
Expr (
Expr (
#line 2002 "cs.ATG"
#line 2002 "cs.ATG"
out expr ) ;
out expr ) ;
@ -4661,7 +4658,7 @@ NotVoidPointer()) {
#line 2029 "cs.ATG"
#line 2029 "cs.ATG"
type = new TypeReference ( "void" ) ;
type = new TypeReference ( "void" ) ;
} else if ( StartOf ( 8 ) ) {
} else if ( StartOf ( 9 ) ) {
Type (
Type (
#line 2030 "cs.ATG"
#line 2030 "cs.ATG"
out type ) ;
out type ) ;
@ -4848,7 +4845,7 @@ out Expression outExpr) {
outExpr = expr ;
outExpr = expr ;
Expect ( 1 9 ) ;
Expect ( 1 9 ) ;
if ( StartOf ( 9 ) ) {
if ( StartOf ( 1 0 ) ) {
FormalParameterList (
FormalParameterList (
#line 2089 "cs.ATG"
#line 2089 "cs.ATG"
p ) ;
p ) ;
@ -5232,7 +5229,7 @@ out TypeReference type) {
#line 2306 "cs.ATG"
#line 2306 "cs.ATG"
type = new TypeReference ( "struct" ) ;
type = new TypeReference ( "struct" ) ;
} else if ( StartOf ( 8 ) ) {
} else if ( StartOf ( 9 ) ) {
Type (
Type (
#line 2307 "cs.ATG"
#line 2307 "cs.ATG"
out t ) ;
out t ) ;
@ -5417,21 +5414,21 @@ out t);
case 1 2 3 : s = "\"while\" expected" ; break ;
case 1 2 3 : s = "\"while\" expected" ; break ;
case 1 2 4 : s = "??? expected" ; break ;
case 1 2 4 : s = "??? expected" ; break ;
case 1 2 5 : s = "invalid NamespaceMemberDecl" ; break ;
case 1 2 5 : s = "invalid NamespaceMemberDecl" ; break ;
case 1 2 6 : s = "invalid AttributeArguments " ; break ;
case 1 2 6 : s = "invalid NonArrayType " ; break ;
case 1 2 7 : s = "invalid Expr " ; break ;
case 1 2 7 : s = "invalid AttributeArguments " ; break ;
case 1 2 8 : s = "invalid TypeModifie r" ; break ;
case 1 2 8 : s = "invalid Exp r" ; break ;
case 1 2 9 : s = "invalid TypeDecl " ; break ;
case 1 2 9 : s = "invalid TypeModifier " ; break ;
case 1 3 0 : s = "invalid TypeDecl" ; break ;
case 1 3 0 : s = "invalid TypeDecl" ; break ;
case 1 3 1 : s = "invalid Integral Type" ; break ;
case 1 3 1 : s = "invalid TypeDecl " ; break ;
case 1 3 2 : s = "invalid Type" ; break ;
case 1 3 2 : s = "invalid Integral Type" ; break ;
case 1 3 3 : s = "invalid Type" ; break ;
case 1 3 3 : s = "invalid Type" ; break ;
case 1 3 4 : s = "invalid FormalParameterList " ; break ;
case 1 3 4 : s = "invalid Type " ; break ;
case 1 3 5 : s = "invalid FormalParameterList" ; break ;
case 1 3 5 : s = "invalid FormalParameterList" ; break ;
case 1 3 6 : s = "invalid ClassType " ; break ;
case 1 3 6 : s = "invalid FormalParameterList " ; break ;
case 1 3 7 : s = "invalid MemberModifier " ; break ;
case 1 3 7 : s = "invalid ClassType " ; break ;
case 1 3 8 : s = "invalid ClassMemberDecl " ; break ;
case 1 3 8 : s = "invalid MemberModifier " ; break ;
case 1 3 9 : s = "invalid ClassMemberDecl" ; break ;
case 1 3 9 : s = "invalid ClassMemberDecl" ; break ;
case 1 4 0 : s = "invalid Struct MemberDecl" ; break ;
case 1 4 0 : s = "invalid Class MemberDecl" ; break ;
case 1 4 1 : s = "invalid StructMemberDecl" ; break ;
case 1 4 1 : s = "invalid StructMemberDecl" ; break ;
case 1 4 2 : s = "invalid StructMemberDecl" ; break ;
case 1 4 2 : s = "invalid StructMemberDecl" ; break ;
case 1 4 3 : s = "invalid StructMemberDecl" ; break ;
case 1 4 3 : s = "invalid StructMemberDecl" ; break ;
@ -5441,11 +5438,11 @@ out t);
case 1 4 7 : s = "invalid StructMemberDecl" ; break ;
case 1 4 7 : s = "invalid StructMemberDecl" ; break ;
case 1 4 8 : s = "invalid StructMemberDecl" ; break ;
case 1 4 8 : s = "invalid StructMemberDecl" ; break ;
case 1 4 9 : s = "invalid StructMemberDecl" ; break ;
case 1 4 9 : s = "invalid StructMemberDecl" ; break ;
case 1 5 0 : s = "invalid Interface MemberDecl" ; break ;
case 1 5 0 : s = "invalid Struct MemberDecl" ; break ;
case 1 5 1 : s = "invalid InterfaceMemberDecl" ; break ;
case 1 5 1 : s = "invalid InterfaceMemberDecl" ; break ;
case 1 5 2 : s = "invalid InterfaceMemberDecl" ; break ;
case 1 5 2 : s = "invalid InterfaceMemberDecl" ; break ;
case 1 5 3 : s = "invalid SimpleType " ; break ;
case 1 5 3 : s = "invalid InterfaceMemberDecl " ; break ;
case 1 5 4 : s = "invalid NonArray Type" ; break ;
case 1 5 4 : s = "invalid Simple Type" ; break ;
case 1 5 5 : s = "invalid EventAccessorDecls" ; break ;
case 1 5 5 : s = "invalid EventAccessorDecls" ; break ;
case 1 5 6 : s = "invalid ConstructorInitializer" ; break ;
case 1 5 6 : s = "invalid ConstructorInitializer" ; break ;
case 1 5 7 : s = "invalid OverloadableOperator" ; break ;
case 1 5 7 : s = "invalid OverloadableOperator" ; break ;
@ -5492,6 +5489,7 @@ out t);
{ 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 , T , x , x , x , 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 , x , x , x , x , x , T , T , x , x , x , T , T , x , x , x , x , x , x , T , T , T , x , x , x , x , T , x , x , x , T , x , T , x , x , x , x , x , x , x , x , x , T , 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 , T , x , x , x , 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 , x , x , x , x , x , T , T , x , x , x , T , T , x , x , x , x , x , x , T , T , T , x , x , x , x , T , x , x , x , T , x , T , x , x , x , x , x , x , x , x , x , T , 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 , T , x , x , x , 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 , x , x , x , x , x , T , T , x , x , x , x , T , x , x , x , x , x , x , T , T , T , x , x , x , x , T , x , x , x , T , x , T , x , x , x , x , x , x , x , x , x , T , 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 , T , x , x , x , 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 , x , x , x , x , x , T , T , x , x , x , x , T , x , x , x , x , x , x , T , T , T , x , x , x , x , T , x , x , x , T , x , T , x , x , x , x , x , x , x , x , x , T , 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 , 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 , T , x , x , x , x , T , x , x , x , x , x , x , T , T , T , x , x , x , x , T , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , T , 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 , 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 , T , x , x , x , x , T , x , x , x , x , x , x , T , T , T , x , x , x , x , T , x , x , x , T , 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 , T , x , T , x , x , T , x , x , x , x , T , x , x , x , T , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , T , x , x , x , x , T , 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 , T , T , x , x , T , x , x , x , x , x , x , x } ,
{ x , T , T , x , T , T , T , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , T , x , x , T , T , x , x , T , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , T , x , T , x , x , T , T , x , x , x , T , x , T , x , T , x , x , x , x , x , T , x , x , T , x , x , x , x , x , x , T , x , x , x , x , T , x , T , T , T , x , x , x , x , x , x , x , x , x , x , T , x , T , T , x , x , T , x , x , T , x , T , x , T , T , T , T , x , T , x , x , x , x , x , x , x } ,
{ x , T , T , x , T , T , T , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , T , x , x , T , T , x , x , T , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , T , T , x , T , x , x , T , T , x , x , x , T , x , T , x , T , x , x , x , x , x , T , x , x , T , x , x , x , x , x , x , T , x , x , x , x , T , x , T , T , T , x , x , x , x , x , x , x , x , x , x , T , x , T , T , x , x , T , x , x , T , x , T , x , T , T , T , T , x , T , x , x , x , x , x , x , x } ,
{ x , x , x , x , T , T , T , T , T , T , x , T , T , T , x , x , T , x , T , x , T , T , T , x , T , T , x , T , T , T , x , x , T , T , T , T , T , 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 , 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 , T , T , T , T , T , T , x , T , T , T , x , x , T , x , T , x , T , T , T , x , T , T , x , T , T , T , x , x , T , T , T , T , T , 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 , 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 , T , 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 , 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 , 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 , x , x , x , x , x , x , x , x , x , x , x , x , 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 , x , x , x , x , x , x , x , x , x , x , x } ,
@ -5502,7 +5500,6 @@ out 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 , T , 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 , T , x , x , x , x , T , x , x , x , x , T , x , T , T , T , T , x , x , x , T , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , T , 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 , 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 , T , x , x , x , x , x , x , x , x , x , x , x , x , T , x , x , x , x , T , x , x , x , x , T , x , T , T , T , T , x , x , x , T , x , x , x , T , x , x , x , x , x , x , x , x , x , x , x , T , x , x , T , x , T , 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 , T , x , x , T , x , T , x , x , T , x , T , T , x , T , x , T , x , T , x , T , T , T , T , x , x , x , T , x , x , x , x , T , x , T , T , T , x , x , T , x , T , x , T , x , x , T , x , T , T , T , T , x , x , T , T , T , x , x , T , T , T , x , x , x , x , x , x , T , T , x , T , T , x , T , T , T , 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 , T , x , x , T , x , T , x , x , T , x , T , T , x , T , x , T , x , T , x , T , T , T , T , x , x , x , T , x , x , x , x , T , x , T , T , T , x , x , T , x , T , x , T , x , x , T , x , T , T , T , T , x , x , T , T , T , x , x , T , T , T , x , x , x , x , x , x , T , T , x , T , T , x , T , T , T , 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 , T , x , T , x , x , T , x , x , x , x , T , x , x , x , T , x , x , T , x , x , x , x , x , T , x , x , x , x , x , x , T , x , x , x , x , T , x , T , x , T , x , x , x , x , x , x , x , x , x , x , T , x , T , x , x , x , T , x , x , x , x , x , x , x , T , T , x , x , T , x , x , T , 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 , T , x , T , x , x , T , x , x , x , x , T , x , x , x , T , x , x , T , x , x , x , x , x , T , x , x , x , x , x , x , T , x , x , x , x , T , x , T , x , T , x , x , x , x , x , x , x , x , x , x , T , x , T , x , x , x , T , x , x , x , x , x , x , x , T , T , 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 , T , x , T , x , x , T , x , x , x , x , T , x , x , x , T , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , T , x , x , x , x , T , 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 , T , T , x , x , T , 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 , T , x , T , x , x , T , x , x , x , x , T , x , x , x , T , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , T , x , x , x , x , T , x , x , x , T , x , T , x , x , x , x , x , x , T , x , T , x , T , x , x , x , T , x , x , x , x , x , x , x , T , T , x , x , T , x , x , 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 , x , x , x , x , x , 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 , T , x , x , x , x , T , x , x , x , T , x , x , x , x , x , x , x , x , T , x , x , x , x , x , x , T , x , x , x , x , T , x , x , x , T , x , T , x , x , x , x , x , x , T , x , T , x , T , x , x , x , T , x , x , x , x , x , x , x , T , T , x , x , T , x , x , 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 , x , x , x , x , x , 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 , T , x , T , T , x , T , x , T , x , T , x , T , T , T , x , x , x , x , T , x , x , x , x , T , x , T , T , x , x , x , T , x , x , x , T , x , x , x , x , x , x , x , x , x , x , T , x , T , x , x , x , T , T , x , x , x , x , x , x , T , T , x , x , T , x , x , 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 , x , x , x , x , x , 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 , T , x , T , T , x , T , x , T , x , T , x , T , T , T , x , x , x , x , T , x , x , x , x , T , x , T , T , x , x , x , T , x , x , x , T , x , x , x , x , x , x , x , x , x , x , T , x , T , x , x , x , T , T , x , x , x , x , x , x , T , T , 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 , T , x , x , x , x , T , x , x , x , T , 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 , 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 , T , x , x , x , x , T , x , x , x , T , 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 , T , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x , x } ,