Skip to content

Repository files navigation

MicroJava Compiler

Features:

  • Global variables
  • Local variables
  • Functions
  • Conditions
  • While and For loops
  • Foreach for iterating arrays

Example of a program

programexampleconstintone = 1;
inti;
boolibool;
intarr2;
intarr[];
inta, curr;
{
intsum(intz, intd)
{
returnz + d;
}
intincrement(inta, intinc) inttmp; {
if(inc == one) tmp = 1;
elseif(inc == 2) tmp = a;
returnsum(a,tmp);
}
boolverify() {
print('v');
returnfalse;
} voidmain()
{
if(1!=1) print(-6);
elseprint(0); ibool = false;
i = 0;
while(i < 5){
if(i == 2) ibool = true;
i++;
}
if(ibool)
if(i == 5) print(1);
elseprint(-1); a = 2; arr = newint[3];
arr[0] = 1 * a;
arr[1] = 2 * a;
arr[2] = sum(arr[1], arr[0]) * a + 1;
if(verify() || arr[2] == 4) print(ord('A')); elseprint(ord('a'));
print(eol);
i = 0;
while (i < 10) {
if(i == 3)
{
i++;
continue;
}
if(i == 4) break;
i = increment(i, 1);
}
if(i == 3 && verify()) print(-4);
elseprint(4); read(arr[0]);
read(arr[1]);
read(arr[2]);
print(eol);
print(sum(sum(arr[0], arr[1]), arr[2])); print(eol); print(increment(arr[2], 2));
a = 3;
i = 0;
while (i < 3){
arr[i] = arr[i] * 2 * a;
i++;
}
arr.foreach(curr => print(curr););
print(eol);
arr2 = 0;
arr.foreach(curr => {
arr2 = arr2 + curr * curr;
});
print(arr2);
}
}

About

This Git repository houses a micro Java compiler built in Java, employing jflex and jcup for lexical analysis and parsing. It offers an array of features, including support for global and local variables, functions, conditional statements, as well as iterative constructs like while and for loops, and a foreach loop.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages