private PLIRBasicBlock parse_varDecl(PLScanner in) throws PLSyntaxErrorException, IOException, PLEndOfFileException
	{	
		Function func = scope.functions.get(funcName);
		
		IdentType type = IdentType.VAR;
		if (toksym == PLToken.varToken)
		{
			type = IdentType.VAR;
		}
		else if (toksym == PLToken.arrToken)
		{
			type = IdentType.ARRAY;
		}
		
		parseVariableDeclaration = true;
		PLIRBasicBlock result = parse_typeDecl(in);
		result = parse_ident(in);
		String symName = result.getLastInst().ident.get(scope.getCurrentScope());
		
		ArrayList<Integer> size = arrayDimensionMap.get(symName);
		if (!globalVariableParsing && this.arrayDimensionMap.containsKey(symName))
		{
			func.arraySizes.put(symName, size);
		}
		
		// Parse any other related declarations
		while (toksym == PLToken.commaToken)
		{
			advance(in);
			scope.addVarToScope(sym);
			
			if (type == IdentType.ARRAY)
			{
				arrayDimensionMap.put(sym, size);
			}
			if (!globalVariableParsing && this.arrayDimensionMap.containsKey(sym))
			{
				func.arraySizes.put(sym, size);
			}
			identTypeMap.put(sym, type);
			result = parse_ident(in);
		}
		if (toksym != PLToken.semiToken)
		{
			SyntaxError("';' missing from varDecl");
		}
		advance(in);
		
		parseVariableDeclaration = false;
		
		return result;
	}