java to Pascal converter Learn programming Java

Lesson:

File Management


Exercise:

java to Pascal converter 41


Objetive:

Create a program to convert simple java programs, such as the following one, to Pascal language


Code:

package CSharpToPascal;
import java.util.*;

public class Main
{
	static void main(String[] args)
	{
		java.io.InputStreamReader inputFile;
		java.io.OutputStreamWriter outputFile;
		String line;
		String name;

		if (args.length < 1)
		{
			System.out.println("Not enough parameters!");
			System.out.println("Enter file name: ");
			name = new Scanner(System.in).nextLine();
		}
		else
		{
			name = args[0];
		}

		inputFile = File.OpenText(name);
		int pointPosition = name.lastIndexOf(".");
		String newName = name.substring(0, pointPosition) + ".pascal";
		outputFile = File.CreateText(newName);

		do
		{
			line = inputFile.ReadLine();
			if (line != null)
			{
				// Automatic changes
				line = line.replace("Console.WriteLine", "WriteLn");
				line = line.replace("\"", "\'");
				line = line.replace("==", " = ");
				line = line.replace("=", " = ");
				line = line.replace("public static void Main()", "");
				line = line.replace("{", "begin");
				line = line.replace("}", "end;");
				line = line.replace("}", "end.");
				line = line.replace("}", "end");
				line = line.replace("using System;", "");
				line = line.replace("public class", "program");

				if (line.contains("int "))
				{
					line = line.replace("int ", "var ");
					line = line.replace(";", ": integer;");
				}

				if (line.contains(" = Convert.ToInt32(Console.ReadLine());"))
				{
					line = line.replace(" = Convert.ToInt32(Console.ReadLine());", "");
					line = "ReadLn(" + line + ");";
				}
				// ...
				// Changes are saved
				outputFile.write(line + System.lineSeparator());
			}

		} while (line != null);

		inputFile.close();
		outputFile.close();
	}
}