public static void main(String[] args) {
		StaticAnalysis staticAnalysis;
		String fileName = "";
		int thresholdSupport = T_SUPPORT_DEFAULT;
		double thresholdConfidence = T_CONFIDENCE_DEFAULT / 100;
		String parseType = INTRA_PARSE_TYPE;

		if (args.length > 0) {
			int i = 0;
			while (i < args.length) {
				switch (i) {
				case 0:
					fileName = args[0];
					break;
				case 1:
					thresholdSupport = Integer.parseInt(args[1]);
					break;
				case 2:
					thresholdConfidence = Double.parseDouble(args[2]) / 100;
					break;
				case 3:
					parseType = args[3];
				}
				i++;
			}

			// Set static analysis type based on parseType
			if (parseType.equals(INTER_PARSE_TYPE)) {
				staticAnalysis = new Interprocedural();
			} else if (parseType.equals(OUTPUT_TXT_INTRA_PARSE_TYPE)) {
				staticAnalysis = new OutputTxtIntra();
			} else if (parseType.equals(OUTPUT_TXT_INTER_PARSE_TYPE)) {
				staticAnalysis = new OutputTxtInter();
			} else {
				// Default is intraprocedural
				staticAnalysis = new Intraprocedural();
			}

			// Generate callgraph and parse
			staticAnalysis.callgraph(fileName, thresholdSupport,
					thresholdConfidence);

		} else {
			System.out
					.println("Minimum argument is at least the BitCode filename");
		}
	}