void BaseExpr() {
		printer.startProduction("BaseExpr");
		switch (la.kind) {
		case 9: {
			Get();
			printer.print(stack.size() + ": In with: " + currentType);
			this.enterParenthesis(this.currentType);
			
			Expr();
			Expect(10);
			this.exitParenthesis();
			printer.print(stack.size() + ": Out with: " + lastType);
			printer.endProduction("BaseExpr"); 
			break;
		}
		case 1: {
			IdAccess();
			printer.endProduction("BaseExpr");
			break;
		}
		case 2: {
			Get();
			printer.print(t.val);
			this.checkInteger(t.val);
			printer.endProduction("BaseExpr");
			
			break;
		}
		case 18: {
			Get();
			printer.print(t.val);
			this.lastType = BOOLEAN;
			this.isExpected(BOOLEAN);
			this.generator.push(1);
			printer.endProduction("BaseExpr"); 
			
			break;
		}
		case 19: {
			Get();
			printer.print(t.val);
			this.lastType = BOOLEAN;
			this.isExpected(BOOLEAN);
			this.generator.push(0);
			printer.endProduction("BaseExpr"); 
			
			break;
		}
		case 20: {
			Get();
			this.lastType = INTEGER;
			this.isExpected(INTEGER);
			this.generator.commandRead();
			
			break;
		}
		default: SynErr(36); break;
		}
	}