private void statements(String returnLabel) throws ParsingException {
			String value = getcurrentValue(), stringValue;
			ExpressionSimplifier simplify = null;
			String identifier;
			switch(value) {
				case Constants.PRINTF:
					incrementTokens(Constants.LEFT_PAREN);
					stringValue = matchNextToken();
					printfP(stringValue);
					incrementTokens(Constants.SEMICOLON);
					break;
				case Constants.SCANF:
					incrementTokens(Constants.LEFT_PAREN);
					stringValue = matchNextToken();
					matchNextToken();
					simplify = expression();
					codeGen.append(simplify.getSb());
					incrementTokens(Constants.SEMICOLON);
					codeGen.append(Constants.SCANF).append(Constants.LEFT_PAREN).append(stringValue).
					append(Constants.COMMA).append(simplify.getCurrentExpressionValue())
					.append(Constants.RIGHT_PAREN).append(Constants.SEMICOLON);
					break;
				case Constants.IF:
					incrementTokens(Constants.LEFT_PAREN);
					simplify = new ExpressionSimplifier(currentFunctionBase, 0);
					conditionExp(simplify);
					incrementTokens(Constants.RIGHT_PAREN);
					codeGen.append(simplify.getSb());
					codeGen.append(Constants.IF).append(Constants.LEFT_PAREN).
					append(simplify.getCurrentExpressionValue()).append(Constants.RIGHT_PAREN).append('\n');
					manageIf(returnLabel);
					break;
				case Constants.WHILE:
					// Generate goto statements for while loop
					String loopStart = getLabel();
					String loopTest = getLabel();
					String loopEnd = getLabel();
					incrementTokens(Constants.LEFT_PAREN);
					simplify = new ExpressionSimplifier(currentFunctionBase, 0);
					conditionExp(simplify);
					incrementTokens(Constants.RIGHT_PAREN);
					codeGen.append(simplify.getSb());
					loopStack.push(new WhileLoopHandler(loopTest, simplify.getSb().toString(), loopEnd));
					codeGen.append(Constants.GOTO).append(' ').append(loopTest).append(Constants.SEMICOLON).append('\n');
					codeGen.append(loopStart).append(Constants.COLON).append('\n');
					block(returnLabel);
					codeGen.append(simplify.getSb());
					codeGen.append(loopTest).append(Constants.COLON).append('\n');
					codeGen.append(Constants.IF).append(Constants.LEFT_PAREN).
					append(simplify.getCurrentExpressionValue()).append(Constants.RIGHT_PAREN).append('\n');
					codeGen.append(Constants.GOTO).append(' ').append(loopStart).append(Constants.SEMICOLON).append('\n');
					if(loopStack.pop().isFoundbreak()) {
						codeGen.append(loopEnd).append(Constants.COLON).append('\n');						
					}
/*					if(match(Constants.RIGHT_BRACE)) {
						codeGen.append(Constants.SEMICOLON).append('\n');
					}*/
					break;
				case Constants.RETURN:
					matchNextToken();
					if(!match(Constants.SEMICOLON)) {
						simplify = expression();
						codeGen.append(simplify.getSb()).append('\n');
						codeGen.append("mem[base-2] = ").append(simplify.getCurrentExpressionValue()).append(";");
					}
					codeGen.append("goto ").append(returnLabel).append(";\n");
					matchNextToken();
					break;						
				case Constants.BREAK:
					codeGen.append(Constants.GOTO).append(' ').append(loopStack.peek().getEndLabel()).
					append(Constants.SEMICOLON).append('\n');
					loopStack.peek().setFoundbreak(true);
					matchNextToken();
					matchNextToken();
					break;
				case Constants.CONTINUE:
					codeGen.append(loopStack.peek().getConditionCode()).append('\n');
					matchNextToken();
					matchNextToken();
					codeGen.append(Constants.GOTO).append(' ').append(loopStack.peek().getStartLabel()).
					append(Constants.SEMICOLON).append('\n');
					break;
				default:
					identifier = matchNextToken(); 
					assignOrFuncCall(identifier);
					matchNextToken();
					break;					
			}
			codeGen.append('\n');
	}