Exercise
java to Pascal converter
Objetive
Create a program that converts simple java programs, such as the following one, to the Pascal language.
Example 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();
}
}