{MiniX10Parser=Parser.delegated({"File":function(){var $elf=this;return (function(){$elf._many(function(){return $elf._apply("TopLevelDeclaration")});$elf._apply("spaces");return $elf._apply("end")})()},"TopLevelDeclaration":function(){var $elf=this;return $elf._or((function(){return $elf._apply("MainClass")}),(function(){return $elf._apply("ClassDeclaration")}))},"MainClass":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","public");$elf._applyWithArgs("token","class");$elf._apply("Identifier");$elf._applyWithArgs("token","{");$elf._applyWithArgs("token","public");$elf._applyWithArgs("token","static");$elf._applyWithArgs("token","void");$elf._applyWithArgs("token","main");$elf._applyWithArgs("token","(");$elf._applyWithArgs("token","String");$elf._applyWithArgs("token","[");$elf._applyWithArgs("token","]");$elf._apply("Identifier");$elf._applyWithArgs("token",")");$elf._applyWithArgs("token","{");$elf._apply("Statement");$elf._applyWithArgs("token","}");return $elf._applyWithArgs("token","}")})()},"ClassDeclaration":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","class");$elf._apply("Identifier");$elf._applyWithArgs("token","{");$elf._many(function(){return $elf._apply("ClassMember")});return $elf._applyWithArgs("token","}")})()},"ClassMember":function(){var $elf=this;return $elf._or((function(){return $elf._apply("MethodDeclaration")}),(function(){return $elf._apply("ConstantDeclaration")}),(function(){return $elf._apply("UpdatableFieldDeclaration")}))},"ConstantDeclaration":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","public");$elf._applyWithArgs("token","static");$elf._applyWithArgs("token","final");$elf._apply("Type");$elf._apply("Identifier");$elf._applyWithArgs("token","=");$elf._apply("Expression");return $elf._applyWithArgs("token",";")})()},"UpdatableFieldDeclaration":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","public");$elf._apply("Type");$elf._apply("Identifier");return $elf._applyWithArgs("token",";")})()},"MethodDeclaration":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","public");$elf._apply("ReturnType");$elf._apply("Identifier");$elf._applyWithArgs("token","(");$elf._or((function(){return $elf._apply("FormalParameterList")}),(function(){return $elf._apply("empty")}));$elf._applyWithArgs("token",")");return $elf._apply("Block")})()},"FormalParameterList":function(){var $elf=this;return (function(){$elf._apply("FormalParameter");return $elf._many(function(){return $elf._apply("FormalParameterRest")})})()},"FormalParameter":function(){var $elf=this;return $elf._or((function(){return $elf._apply("FinalFormalParameter")}),(function(){return $elf._apply("UpdatableFormalParameter")}))},"FinalFormalParameter":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","final");$elf._apply("Type");return $elf._apply("Identifier")})()},"UpdatableFormalParameter":function(){var $elf=this;return (function(){$elf._apply("Type");return $elf._apply("Identifier")})()},"FormalParameterRest":function(){var $elf=this;return (function(){$elf._applyWithArgs("token",",");return $elf._apply("FormalParameter")})()},"ReturnType":function(){var $elf=this;return $elf._or((function(){return $elf._apply("VoidType")}),(function(){return $elf._apply("Type")}))},"VoidType":function(){var $elf=this;return $elf._applyWithArgs("token","void")},"Type":function(){var $elf=this;return $elf._or((function(){return $elf._apply("UpdatableArrayType")}),(function(){return $elf._apply("NonArrayType")}))},"UpdatableArrayType":function(){var $elf=this;return (function(){$elf._apply("NonArrayType");$elf._applyWithArgs("token","[");$elf._applyWithArgs("token",":");$elf._apply("RankEquation");return $elf._applyWithArgs("token","]")})()},"RankEquation":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","rank");$elf._applyWithArgs("token","==");return $elf._apply("IntegerLiteral")})()},"NonArrayType":function(){var $elf=this;return $elf._or((function(){return $elf._apply("BooleanType")}),(function(){return $elf._apply("IntegerType")}),(function(){return $elf._apply("DoubleType")}),(function(){return $elf._apply("StringType")}),(function(){return $elf._apply("PlaceType")}),(function(){return $elf._apply("DistType")}),(function(){return $elf._apply("RegionType")}),(function(){return $elf._apply("PointType")}),(function(){return $elf._apply("ClassNameType")}))},"BooleanType":function(){var $elf=this;return $elf._applyWithArgs("token","boolean")},"IntegerType":function(){var $elf=this;return $elf._applyWithArgs("token","int")},"DoubleType":function(){var $elf=this;return $elf._applyWithArgs("token","double")},"StringType":function(){var $elf=this;return $elf._applyWithArgs("token","String")},"PlaceType":function(){var $elf=this;return $elf._applyWithArgs("token","place")},"DistType":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","dist");$elf._applyWithArgs("token","(");$elf._applyWithArgs("token",":");$elf._apply("RankEquation");return $elf._applyWithArgs("token",")")})()},"RegionType":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","region");$elf._applyWithArgs("token","(");$elf._applyWithArgs("token",":");$elf._apply("RankEquation");return $elf._applyWithArgs("token",")")})()},"PointType":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","point");$elf._applyWithArgs("token","(");$elf._applyWithArgs("token",":");$elf._apply("RankEquation");return $elf._applyWithArgs("token",")")})()},"ClassNameType":function(){var $elf=this;return $elf._apply("Identifier")},"Identifier":function(){var $elf=this;return (function(){$elf._apply("letter");return $elf._many(function(){return $elf._or((function(){return $elf._apply("letter")}),(function(){return $elf._apply("digit")}),(function(){return $elf._applyWithArgs("exactly","_")}))})})()},"Statement":function(){var $elf=this;return $elf._or((function(){return $elf._apply("Assignment")}),(function(){return $elf._apply("AsyncStatement")}),(function(){return $elf._apply("Block")}),(function(){return $elf._apply("FinishStatement")}),(function(){return $elf._apply("IfStatement")}),(function(){return $elf._apply("LoopStatement")}),(function(){return $elf._apply("PostfixStatement")}),(function(){return $elf._apply("PrintlnStatement")}),(function(){return $elf._apply("ReturnStatement")}),(function(){return $elf._apply("ThrowStatement")}),(function(){return $elf._apply("WhileStatement")}))},"Assignment":function(){var $elf=this;return (function(){$elf._apply("Expression");$elf._applyWithArgs("token","=");$elf._apply("Expression");return $elf._applyWithArgs("token",";")})()},"AsyncStatement":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","async");$elf._applyWithArgs("token","(");$elf._apply("Expression");$elf._applyWithArgs("token",")");return $elf._apply("Block")})()},"Block":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","{");$elf._many(function(){return $elf._apply("BlockStatement")});return $elf._applyWithArgs("token","}")})()},"BlockStatement":function(){var $elf=this;return $elf._or((function(){return $elf._apply("FinalVariableDeclaration")}),(function(){return $elf._apply("UpdatableVariableDeclaration")}),(function(){return $elf._apply("Statement")}))},"FinalVariableDeclaration":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","final");$elf._apply("Type");$elf._apply("Identifier");$elf._applyWithArgs("token","=");$elf._apply("Expression");return $elf._applyWithArgs("token",";")})()},"UpdatableVariableDeclaration":function(){var $elf=this;return (function(){$elf._apply("Type");$elf._apply("Identifier");$elf._applyWithArgs("token","=");$elf._apply("Expression");return $elf._applyWithArgs("token",";")})()},"FinishStatement":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","finish");return $elf._apply("Statement")})()},"IfStatement":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","if");$elf._applyWithArgs("token","(");$elf._apply("Expression");$elf._applyWithArgs("token",")");$elf._apply("Statement");return $elf._or((function(){return $elf._apply("ElseClause")}),(function(){return $elf._apply("empty")}))})()},"ElseClause":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","else");return $elf._apply("Statement")})()},"LoopStatement":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","for");$elf._applyWithArgs("token","(");$elf._apply("PointType");$elf._apply("ExplodedSpecification");$elf._applyWithArgs("token",":");$elf._apply("Expression");$elf._applyWithArgs("token",")");return $elf._apply("Statement")})()},"ExplodedSpecification":function(){var $elf=this;return $elf._apply("IdentifierList")},"PointName":function(){var $elf=this;return $elf._apply("Identifier")},"IdentifierList":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","[");$elf._apply("Identifier");$elf._many(function(){return $elf._apply("IdentifierRest")});return $elf._applyWithArgs("token","]")})()},"IdentifierRest":function(){var $elf=this;return (function(){$elf._applyWithArgs("token",",");return $elf._apply("Identifier")})()},"PostfixStatement":function(){var $elf=this;return (function(){$elf._apply("Expression");return $elf._applyWithArgs("token",";")})()},"PrintlnStatement":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","System.out.println");$elf._applyWithArgs("token","(");$elf._apply("Expression");$elf._applyWithArgs("token",")");return $elf._applyWithArgs("token",";")})()},"ReturnStatement":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","return");$elf._or((function(){return $elf._apply("Expression")}),(function(){return $elf._apply("empty")}));return $elf._applyWithArgs("token",";")})()},"ThrowStatement":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","throw");$elf._applyWithArgs("token","new");$elf._applyWithArgs("token","RuntimeException");$elf._applyWithArgs("token","(");$elf._apply("Expression");$elf._applyWithArgs("token",")");return $elf._applyWithArgs("token",";")})()},"WhileStatement":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","while");$elf._applyWithArgs("token","(");$elf._apply("Expression");$elf._applyWithArgs("token",")");return $elf._apply("Statement")})()},"Expression":function(){var $elf=this;return $elf._or((function(){return $elf._apply("InclusiveOrExpression")}),(function(){return $elf._apply("EqualsExpression")}),(function(){return $elf._apply("NotEqualsExpression")}),(function(){return $elf._apply("GreaterThanExpression")}),(function(){return $elf._apply("PlusExpression")}),(function(){return $elf._apply("MinusExpression")}),(function(){return $elf._apply("TimesExpression")}),(function(){return $elf._apply("DivideExpression")}),(function(){return $elf._apply("SinExpression")}),(function(){return $elf._apply("CosExpression")}),(function(){return $elf._apply("PowExpression")}),(function(){return $elf._apply("AbsExpression")}),(function(){return $elf._apply("MapExpression")}),(function(){return $elf._apply("RegionConstant")}),(function(){return $elf._apply("UnaryMinusExpression")}),(function(){return $elf._apply("CoercionToIntExpression")}),(function(){return $elf._apply("CoercionToDoubleExpression")}),(function(){return $elf._apply("TypeAnnotatedExpression")}),(function(){return $elf._apply("FactoryBlock")}),(function(){return $elf._apply("ArrayAccess")}),(function(){return $elf._apply("DotDistribution")}),(function(){return $elf._apply("DotIsFirst")}),(function(){return $elf._apply("DotMethodCall")}),(function(){return $elf._apply("DotIdentifier")}),(function(){return $elf._apply("PrimaryExpression")}))},"InclusiveOrExpression":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token","|");return $elf._apply("Expression")})()},"EqualsExpression":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token","==");return $elf._apply("Expression")})()},"NotEqualsExpression":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token","!=");return $elf._apply("Expression")})()},"GreaterThanExpression":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token",">");return $elf._apply("Expression")})()},"PlusExpression":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token","+");return $elf._apply("Expression")})()},"MinusExpression":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token","-");return $elf._apply("Expression")})()},"TimesExpression":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token","*");return $elf._apply("Expression")})()},"DivideExpression":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token","/");return $elf._apply("Expression")})()},"SinExpression":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","Math");$elf._applyWithArgs("token",".");$elf._applyWithArgs("token","sin");$elf._applyWithArgs("token","(");$elf._apply("Expression");return $elf._applyWithArgs("token",")")})()},"CosExpression":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","Math");$elf._applyWithArgs("token",".");$elf._applyWithArgs("token","cos");$elf._applyWithArgs("token","(");$elf._apply("Expression");return $elf._applyWithArgs("token",")")})()},"PowExpression":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","Math");$elf._applyWithArgs("token",".");$elf._applyWithArgs("token","pow");$elf._applyWithArgs("token","(");$elf._apply("Expression");$elf._applyWithArgs("token",",");$elf._apply("Expression");return $elf._applyWithArgs("token",")")})()},"AbsExpression":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","Math");$elf._applyWithArgs("token",".");$elf._applyWithArgs("token","abs");$elf._applyWithArgs("token","(");$elf._apply("Expression");return $elf._applyWithArgs("token",")")})()},"MapExpression":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token","->");return $elf._apply("PrimaryExpression")})()},"RegionConstant":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","[");$elf._apply("ColonExpression");$elf._or((function(){return $elf._apply("ColonRest")}),(function(){return $elf._apply("empty")}));return $elf._applyWithArgs("token","]")})()},"ColonRest":function(){var $elf=this;return (function(){$elf._applyWithArgs("token",",");return $elf._apply("ColonExpression")})()},"ColonExpression":function(){var $elf=this;return $elf._or((function(){return $elf._apply("ColonPair")}),(function(){return $elf._apply("Expression")}))},"ColonPair":function(){var $elf=this;return (function(){$elf._apply("Expression");$elf._applyWithArgs("token",":");return $elf._apply("Expression")})()},"UnaryMinusExpression":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","-");return $elf._apply("PrimaryExpression")})()},"CoercionToIntExpression":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","(");$elf._applyWithArgs("token","int");$elf._applyWithArgs("token",")");return $elf._apply("Expression")})()},"CoercionToDoubleExpression":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","(");$elf._applyWithArgs("token","double");$elf._applyWithArgs("token",")");return $elf._apply("Expression")})()},"TypeAnnotatedExpression":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","(");$elf._apply("TypeAnnotation");$elf._applyWithArgs("token",")");return $elf._apply("Expression")})()},"TypeAnnotation":function(){var $elf=this;return $elf._or((function(){return $elf._apply("UpdatableArrayType")}),(function(){return $elf._apply("DistType")}))},"PrimaryExpression":function(){var $elf=this;return $elf._or((function(){return $elf._apply("Literal")}),(function(){return $elf._apply("This")}),(function(){return $elf._apply("AllocationExpression")}),(function(){return $elf._apply("Identifier")}))},"This":function(){var $elf=this;return $elf._applyWithArgs("token","this")},"FactoryBlock":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","dist.factory.block");$elf._applyWithArgs("token","(");$elf._apply("Expression");return $elf._applyWithArgs("token",")")})()},"ArrayAccess":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token","[");$elf._apply("ExpressionList");return $elf._applyWithArgs("token","]")})()},"DotMethodCall":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token",".");$elf._apply("Identifier");$elf._applyWithArgs("token","(");$elf._or((function(){return $elf._apply("ExpressionList")}),(function(){return $elf._apply("empty")}));return $elf._applyWithArgs("token",")")})()},"DotDistribution":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token",".");return $elf._applyWithArgs("token","distribution")})()},"DotIsFirst":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token",".");$elf._applyWithArgs("token","isFirst");$elf._applyWithArgs("token","(");return $elf._applyWithArgs("token",")")})()},"DotIdentifier":function(){var $elf=this;return (function(){$elf._apply("PrimaryExpression");$elf._applyWithArgs("token",".");return $elf._apply("Identifier")})()},"AllocationExpression":function(){var $elf=this;return $elf._or((function(){return $elf._apply("NewObject")}),(function(){return $elf._apply("NewUpdatableArray")}))},"NewObject":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","new");$elf._apply("Identifier");$elf._applyWithArgs("token","(");$elf._or((function(){return $elf._apply("ExpressionList")}),(function(){return $elf._apply("empty")}));return $elf._applyWithArgs("token",")")})()},"NewUpdatableArray":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","new");$elf._apply("NonArrayType");$elf._applyWithArgs("token","[");$elf._apply("Identifier");$elf._applyWithArgs("token","]");return $elf._or((function(){return $elf._apply("ArrayInitializer")}),(function(){return $elf._apply("empty")}))})()},"Literal":function(){var $elf=this;return $elf._or((function(){return $elf._apply("IntegerLiteral")}),(function(){return $elf._apply("FloatingPointLiteral")}),(function(){return $elf._apply("StringLiteral")}),(function(){return $elf._apply("HereLiteral")}),(function(){return $elf._apply("DistUnique")}))},"IntegerLiteral":function(){var $elf=this;return $elf._many1(function(){return $elf._apply("digit")})},"FloatingPointLiteral":function(){var $elf=this;return (function(){$elf._many1(function(){return $elf._apply("digit")});$elf._applyWithArgs("exactly",".");return $elf._many1(function(){return $elf._apply("digit")})})()},"StringLiteral":function(){var $elf=this;return (function(){$elf._applyWithArgs("exactly","\"");$elf._many(function(){return $elf._or((function(){return (function(){$elf._applyWithArgs("exactly","\\");return $elf._apply("char")})()}),(function(){return (function(){$elf._not(function(){return $elf._applyWithArgs("exactly","\"")});return $elf._apply("char")})()}))});return $elf._applyWithArgs("exactly","\"")})()},"HereLiteral":function(){var $elf=this;return $elf._applyWithArgs("token","here")},"DistUnique":function(){var $elf=this;return $elf._applyWithArgs("token","dist.UNIQUE")},"ExpressionList":function(){var $elf=this;return (function(){$elf._apply("Expression");return $elf._many(function(){return $elf._apply("ArgumentRest")})})()},"ArgumentRest":function(){var $elf=this;return (function(){$elf._applyWithArgs("token",",");return $elf._apply("Expression")})()},"ArrayInitializer":function(){var $elf=this;return (function(){$elf._applyWithArgs("token","(");$elf._apply("PointType");$elf._apply("ExplodedSpecification");$elf._applyWithArgs("token",")");return $elf._apply("Block")})()}});MiniX10Parser["keywords"]=({});keywords=["break","case","catch","continue","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","this","throw","try","typeof","var","void","while","with","ometa"];for(var idx=(0);(idx < keywords["length"]);idx++){MiniX10Parser["keywords"][keywords[idx]]=true}MiniX10Parser["_isKeyword"]=(function (k){return (this["keywords"].hasProperty(k) && (!Object["prototype"].hasProperty(k)))})}