MiniJava
Home
Reference Manual
GitHub
Source Code
class Factorial { public static void main(String[] a) { System.out.println(new Fac().ComputeFac(10)); } } class Fac { public int ComputeFac(int num) { int num_aux; if (num < 1) num_aux = 1; else num_aux = num * (this.ComputeFac(num - 1)); return num_aux; } }
Abstract Syntax Tree
[{"text":"mainClass: \"Factorial\"","nodes":[{"text":"argsName: \"a\"","nodes":null,"tags":null},{"text":"statement: printStatement","nodes":[{"text":"expression: methodCallExpression","nodes":[{"text":"object: objectInstantiationExpression: \"Fac\"","nodes":null,"tags":null},{"text":"methodName: \"ComputeFac\"","nodes":null,"tags":null},{"text":"arguments","nodes":[{"text":"integerExpression: 10","nodes":null,"tags":null}],"tags":["1"]}],"tags":null}],"tags":null}],"tags":null},{"text":"classDeclarations","nodes":[{"text":"classDeclaration: \"Fac\"","nodes":[{"text":"baseClassName: \"\"","nodes":null,"tags":null},{"text":"fieldDeclarations","nodes":[],"tags":["0"]},{"text":"methodDeclarations","nodes":[{"text":"methodDeclaration: \"ComputeFac\"","nodes":[{"text":"returnType: IntegerType","nodes":null,"tags":null},{"text":"parameterDeclarations","nodes":[{"text":"\"num\": IntegerType","nodes":null,"tags":null}],"tags":["1"]},{"text":"variableDeclarations","nodes":[{"text":"\"num_aux\": IntegerType","nodes":null,"tags":null}],"tags":["1"]},{"text":"body","nodes":[{"text":"ifElseStatement","nodes":[{"text":"condition: binaryExpression","nodes":[{"text":"lessThanExpression","nodes":[{"text":"lhs: identifierExpression: \"num\"","nodes":null,"tags":null},{"text":"rhs: integerExpression: 1","nodes":null,"tags":null}],"tags":null}],"tags":null},{"text":"trueStatement: variableAssignmentStatement","nodes":[{"text":"variableName: \"num_aux\"","nodes":null,"tags":null},{"text":"expression: integerExpression: 1","nodes":null,"tags":null}],"tags":null},{"text":"falseStatement: variableAssignmentStatement","nodes":[{"text":"variableName: \"num_aux\"","nodes":null,"tags":null},{"text":"expression: binaryExpression","nodes":[{"text":"multiplicativeExpression","nodes":[{"text":"lhs: identifierExpression: \"num\"","nodes":null,"tags":null},{"text":"rhs: groupExpression","nodes":[{"text":"expression: methodCallExpression","nodes":[{"text":"object: ","nodes":null,"tags":null},{"text":"methodName: \"ComputeFac\"","nodes":null,"tags":null},{"text":"arguments","nodes":[{"text":"binaryExpression","nodes":[{"text":"subtractiveExpression","nodes":[{"text":"lhs: identifierExpression: \"num\"","nodes":null,"tags":null},{"text":"rhs: integerExpression: 1","nodes":null,"tags":null}],"tags":null}],"tags":null}],"tags":["1"]}],"tags":null}],"tags":null}],"tags":null}],"tags":null}],"tags":null}],"tags":null}],"tags":["1"]}],"tags":null}],"tags":["1"]}],"tags":null}],"tags":["1"]}]
Common Intermediate Language
[{"text":"assembly: \"Factorial\"","nodes":[{"text":"version: 1.0.0.0","nodes":null,"tags":null},{"text":"mainModule: \"Factorial.dll\"","nodes":[{"text":"classes","nodes":[{"text":"class: \"Factorial\"","nodes":[{"text":"baseClassName: \"\"","nodes":null,"tags":null},{"text":"namespace: \"Factorial\"","nodes":null,"tags":null},{"text":"attributes","nodes":[{"text":"AnsiClass","nodes":null,"tags":null},{"text":" NotPublic","nodes":null,"tags":null},{"text":" AutoLayout","nodes":null,"tags":null},{"text":" BeforeFieldInit","nodes":null,"tags":null}],"tags":["4"]},{"text":"fields","nodes":null,"tags":["0"]},{"text":"methods","nodes":[{"text":"method: \".ctor\"","nodes":[{"text":"returnType: VoidType","nodes":null,"tags":null},{"text":"attributes","nodes":[{"text":"CompilerControlled","nodes":null,"tags":null},{"text":" Public","nodes":null,"tags":null},{"text":" HideBySig","nodes":null,"tags":null},{"text":" SpecialName","nodes":null,"tags":null},{"text":" RTSpecialName","nodes":null,"tags":null}],"tags":["5"]},{"text":"parameters","nodes":null,"tags":["0"]},{"text":"variables","nodes":null,"tags":["0"]},{"text":"body","nodes":[{"text":"Ldarg 0","nodes":null,"tags":null},{"text":"\"CallCtor\" ","nodes":null,"tags":null},{"text":"Ret","nodes":null,"tags":null}],"tags":["3"]}],"tags":null},{"text":"method: \"Main\"","nodes":[{"text":"returnType: VoidType","nodes":null,"tags":null},{"text":"attributes","nodes":[{"text":"CompilerControlled","nodes":null,"tags":null},{"text":" Public","nodes":null,"tags":null},{"text":" Static","nodes":null,"tags":null},{"text":" HideBySig","nodes":null,"tags":null}],"tags":["4"]},{"text":"parameters","nodes":[{"text":"parameter: \"a\"","nodes":[{"text":"type: StringArrayType","nodes":null,"tags":null},{"text":"attributes","nodes":[{"text":"None","nodes":null,"tags":null}],"tags":["1"]}],"tags":null}],"tags":["1"]},{"text":"variables","nodes":null,"tags":["0"]},{"text":"body","nodes":[{"text":"Newobj \"Fac\"","nodes":null,"tags":null},{"text":"Ldc_I4 10","nodes":null,"tags":null},{"text":"Callvirt \"Fac\".\"ComputeFac\"","nodes":null,"tags":null},{"text":"\"WriteLine\"","nodes":null,"tags":null},{"text":"Ret","nodes":null,"tags":null}],"tags":["5"]}],"tags":null}],"tags":["2"]}],"tags":null},{"text":"class: \"Fac\"","nodes":[{"text":"baseClassName: \"\"","nodes":null,"tags":null},{"text":"namespace: \"Factorial\"","nodes":null,"tags":null},{"text":"attributes","nodes":[{"text":"AnsiClass","nodes":null,"tags":null},{"text":" NotPublic","nodes":null,"tags":null},{"text":" AutoLayout","nodes":null,"tags":null},{"text":" BeforeFieldInit","nodes":null,"tags":null}],"tags":["4"]},{"text":"fields","nodes":null,"tags":["0"]},{"text":"methods","nodes":[{"text":"method: \".ctor\"","nodes":[{"text":"returnType: VoidType","nodes":null,"tags":null},{"text":"attributes","nodes":[{"text":"CompilerControlled","nodes":null,"tags":null},{"text":" Public","nodes":null,"tags":null},{"text":" HideBySig","nodes":null,"tags":null},{"text":" SpecialName","nodes":null,"tags":null},{"text":" RTSpecialName","nodes":null,"tags":null}],"tags":["5"]},{"text":"parameters","nodes":null,"tags":["0"]},{"text":"variables","nodes":null,"tags":["0"]},{"text":"body","nodes":[{"text":"Ldarg 0","nodes":null,"tags":null},{"text":"\"CallCtor\" ","nodes":null,"tags":null},{"text":"Ret","nodes":null,"tags":null}],"tags":["3"]}],"tags":null},{"text":"method: \"ComputeFac\"","nodes":[{"text":"returnType: IntegerType","nodes":null,"tags":null},{"text":"attributes","nodes":[{"text":"CompilerControlled","nodes":null,"tags":null},{"text":" Public","nodes":null,"tags":null},{"text":" HideBySig","nodes":null,"tags":null}],"tags":["3"]},{"text":"parameters","nodes":[{"text":"parameter: \"num\"","nodes":[{"text":"type: IntegerType","nodes":null,"tags":null},{"text":"attributes","nodes":[{"text":"None","nodes":null,"tags":null}],"tags":["1"]}],"tags":null}],"tags":["1"]},{"text":"variables","nodes":[{"text":"variable: IntegerType","nodes":null,"tags":null}],"tags":["1"]},{"text":"body","nodes":[{"text":"Ldarg 1","nodes":null,"tags":null},{"text":"Ldc_I4 1","nodes":null,"tags":null},{"text":"Clt","nodes":null,"tags":null},{"text":"Brtrue thenLabel(63167771)","nodes":null,"tags":null},{"text":"Ldarg 1","nodes":null,"tags":null},{"text":"Ldarg 0","nodes":null,"tags":null},{"text":"Ldarg 1","nodes":null,"tags":null},{"text":"Ldc_I4 1","nodes":null,"tags":null},{"text":"Sub","nodes":null,"tags":null},{"text":"Call \"Fac\".\"ComputeFac\"","nodes":null,"tags":null},{"text":"Mul","nodes":null,"tags":null},{"text":"Stloc 0","nodes":null,"tags":null},{"text":"Br endLabel(4161677)","nodes":null,"tags":null},{"text":"\"Label\" thenLabel(63167771)","nodes":null,"tags":null},{"text":"Ldc_I4 1","nodes":null,"tags":null},{"text":"Stloc 0","nodes":null,"tags":null},{"text":"\"Label\" endLabel(4161677)","nodes":null,"tags":null},{"text":"Ldloc 0","nodes":null,"tags":null},{"text":"Ret","nodes":null,"tags":null}],"tags":["19"]}],"tags":null}],"tags":["2"]}],"tags":null}],"tags":["2"]}],"tags":null}],"tags":null}]
Options
Samples
select a sample
BinarySearch.java
BinaryTree.java
BubbleSort.java
Factorial.java
LinearSearch.java
LinkedList.java
QuickSort.java
TreeVisitor.java
GC Interval Timer
milliseconds
Console
3628800