void AUTOVARIABLE(out pBaseLangObject outObj, pBaseLangObject parent, Encapsulation e = Encapsulation.NA)
 {
     var obj = new Variable(parent, la.col, la.line); obj.encapsulation = e; outObj = obj; pBaseLangObject blo;
     Expect(60);
     obj.varType = new VarTypeObject(VarType.Auto);
     IDENT(out blo, outObj);
     obj.Name = (Ident)blo;
     BODY_ASSIGNMENT(out blo, outObj);
     obj.addChild(blo);
 }
 void NEWVARIABLE(out pBaseLangObject outObj, pBaseLangObject parent, Encapsulation e = Encapsulation.NA)
 {
     var obj = new Variable(parent, la.col, la.line); obj.encapsulation = e; outObj = obj; pBaseLangObject blo; VarType v;
     if (StartOf(2)) {
         VARTYPE(out v);
         obj.varType = new VarTypeObject(v);
     } else if (StartOf(12)) {
         bool isStrict = false;
         if (la.kind == 49) {
             Get();
             isStrict = true;
         }
         IDENTACCESS(out blo, obj);
         obj.varType = new VarTypeObject((Ident)blo, isStrict);
         if (la.kind == 21) {
             Template te;
             TEMPLATE(out te, outObj);
             obj.varType.TemplateObject = te;
         }
     } else SynErr(93);
     IDENT(out blo, outObj);
     obj.Name = (Ident)blo;
     if (la.kind == 7 || la.kind == 8 || la.kind == 9) {
         BODY_ASSIGNMENT(out blo, outObj);
         obj.addChild(blo);
     }
 }