Git Product home page Git Product logo

dercompiler's People

Contributors

gitthomas375 avatar icomputerfreak avatar knorrfix avatar robinmaisch avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

dercompiler's Issues

Make --echo a real argument, not a flag

Currently ./run Test.java --echo works, as well as ./run --echo Test.java. Depending on the requirements, we may need to change --echo to work as an argument with its own parameter, not as a flag.

Comma after "do" token is swallowed

Currently your code swallows the next token after do if it is not part of an identifier.

I'd guess it happens as you try to read the o in do twice:

                    case 'o':
                        readCharacter();
                        // do. | do.uble
                        if (!isIdentifierChar(currentChar)) {
                            readCharacter();                                // <---- Duplicated read here
                            return Token.DO;
                        } else return compareSuffix(Token.DOUBLE_TYPE, 2);

In the mjtest repo this triggers for do, else which your compiler turns into do and else tokens, swallowing the comma.

I wouldn't normally report random bugs in your compiler but I found that in the pipeline output and was intrigued. I hope that's alright with you :)

Failing test detected

Greetings traveller,

sticks and stones won't break your bones but https://git.scc.kit.edu/IPDSnelting/mjtest-tests broke your compiler :(

Have fun and take good care of it 🐞


mjtest output
Running lexer tests
[SUCCESS] lexer:AllTokens.valid.mj                             correct
[SUCCESS] lexer:AlmostKeywords.mj                              correct
[SUCCESS] lexer:Comment.valid.mj                               correct
[SUCCESS] lexer:CommentSeperator.valid.mj                      correct
[SUCCESS] lexer:ConcatenatedComments.valid.mj                  correct
[SUCCESS] lexer:Cowsay.invalid.mj                              correct
[SUCCESS] lexer:Cowsay.valid.mj                                correct
[SUCCESS] lexer:DerCompilerMain.valid.mj                       correct
[SUCCESS] lexer:DollarIdentifier.invalid.mj                    correct
[SUCCESS] lexer:EmptyFile.mj                                   correct
[SUCCESS] lexer:EmptyFile.valid.mj                             correct
[SUCCESS] lexer:EvenWeirderNumbers.valid.mj                    correct
[SUCCESS] lexer:Haskell.valid.mj                               correct
[SUCCESS] lexer:Identifiers.valid.mj                           correct
[SUCCESS] lexer:IntLiteralWithLeadingZero.mj                   correct
[SUCCESS] lexer:InvalidComment.invalid.mj                      correct
[SUCCESS] lexer:InvalidDollarSymbol.invalid.mj                 correct
[SUCCESS] lexer:Keywords.mj                                    correct
[SUCCESS] lexer:KeywordsOperatorsNumbersAndSpacing.valid.mj    correct
[SUCCESS] lexer:LargeIntegerLiteral.mj                         correct
[SUCCESS] lexer:LongestPattern.mj                              correct
[SUCCESS] lexer:MathWithEmptyComment.mj                        correct
[SUCCESS] lexer:MixUp.mj                                       correct
[SUCCESS] lexer:Operators.valid.mj                             correct
[SUCCESS] lexer:SomeEdgecases.valid.mj                         correct
[SUCCESS] lexer:String.invalid.mj                              correct
[SUCCESS] lexer:UnicodeIdent1.invalid.mj                       correct
[SUCCESS] lexer:UnicodeIdent2.invalid.mj                       correct
[SUCCESS] lexer:UnicodeWhitespace.invalid.mj                   correct
[SUCCESS] lexer:UppercaseIgnore.valid.mj                       correct
[SUCCESS] lexer:UppercaseKeywords.mj                           correct
[SUCCESS] lexer:Waffelrezept.mj                                correct
[SUCCESS] lexer:WildWhitespaces.mj                             correct
----------------------------------------
All 33 run tests succeeded
Running syntax tests
[SUCCESS] syntax:AccessChain.valid.mj                             correct
[SUCCESS] syntax:Add.valid.mj                                     correct
[SUCCESS] syntax:AdditionalSemicolon.invalid.mj                   correct
[SUCCESS] syntax:ArrayAccess.valid.mj                             correct
[SUCCESS] syntax:AssignmentExpressionStatementAfterIf.valid.mj    correct
[SUCCESS] syntax:BlockStatement.mj                                correct
[SUCCESS] syntax:Braces.valid.mj                                  correct
[SUCCESS] syntax:CStyleArrays.invalid.mj                          correct
[SUCCESS] syntax:CSyntax.invalid.mj                               correct
[SUCCESS] syntax:ClassWithPublic.invalid.mj                       correct
[SUCCESS] syntax:ComplexExpression.valid.mj                       correct
[SUCCESS] syntax:DeeplyNestedCalc.valid.mj                        correct
[SUCCESS] syntax:DerCompilerMain.valid.mj                         correct
[SUCCESS] syntax:DisallowedBitwiseOr.invalid.mj                   correct
[SUCCESS] syntax:DisallowedConstructors.invalid.mj                correct
[SUCCESS] syntax:DisallowedInitializedAttributes.invalid.mj       correct
[SUCCESS] syntax:ElseOneBrace.invalid.mj                          correct
[SUCCESS] syntax:Empty.valid.mj                                   correct
[SUCCESS] syntax:EmptyArrayAccess.invalid.mj                      correct
[SUCCESS] syntax:EmptyClassNamedStaticMethod.mj                   correct
[SUCCESS] syntax:EveryPossibleLanguageConstruct.valid.mj          correct
[SUCCESS] syntax:FinalBeforeParameter.invalid.mj                  correct
[SUCCESS] syntax:FinalInParameter.invalid.mj                      correct
[SUCCESS] syntax:Foo.invalid.mj                                   correct
[SUCCESS] syntax:Foo.valid.mj                                     correct
[SUCCESS] syntax:FullClass.valid.mj                               correct
[SUCCESS] syntax:HelloWorld.mj                                    correct
[SUCCESS] syntax:IfWhileNoBraces.valid.mj                         correct
[SUCCESS] syntax:InnerClass.invalid.mj                            correct
[SUCCESS] syntax:InvalidExpression.invalid.mj                     correct
[SUCCESS] syntax:InvalidIdentifier1.invalid.mj                    correct
[SUCCESS] syntax:InvalidIdentifier2.invalid.mj                    correct
[SUCCESS] syntax:InvalidIdentifier3.invalid.mj                    correct
[SUCCESS] syntax:LocalVariableStatementAfterIf.invalid.mj         correct
[SUCCESS] syntax:MainMethodWithoutPublic.invalid.mj               correct
[SUCCESS] syntax:ManyBraces.valid.mj                              correct
[SUCCESS] syntax:ManyParentheses.valid.mj                         correct
[SUCCESS] syntax:MethodInvocation.valid.mj                        correct
[SUCCESS] syntax:MethodInvocationArrayAccess.valid.mj             correct
[SUCCESS] syntax:MethodWithoutPublic.invalid.mj                   correct
[SUCCESS] syntax:MinusMinus.invalid.mj                            correct
[SUCCESS] syntax:MissingPrimaryExpr.invalid.mj                    correct
[SUCCESS] syntax:MissingStringParamMainMethod.invalid.mj          correct
[SUCCESS] syntax:MultiDimensionalArrays.mj                        correct
[SUCCESS] syntax:MultipleReturnStatements.valid.mj                correct
[SUCCESS] syntax:NegativeIntegerLiterals.mj                       correct
[SUCCESS] syntax:NestedComments.invalid.mj                        correct
[SUCCESS] syntax:NewArrayEmpty.invalid.mj                         correct
[SUCCESS] syntax:NewArrayWithAccess1.invalid.mj                   correct
[SUCCESS] syntax:NewArrayWithAccess1.valid.mj                     correct
[SUCCESS] syntax:NewArrayWithAccess2.invalid.mj                   correct
[SUCCESS] syntax:NewArrayWithAccess2.valid.mj                     correct
[SUCCESS] syntax:NoTernaryOp.invalid.mj                           correct
[SUCCESS] syntax:NotNot.valid.mj                                  correct
[SUCCESS] syntax:OpeningComment.invalid.mj                        correct
[SUCCESS] syntax:ParametersTrailingComma.invalid.mj               correct
[SUCCESS] syntax:PostfixOP.mj                                     correct
[SUCCESS] syntax:PrefixIncrement.invalid.mj                       correct
[SUCCESS] syntax:PrivateMethod.invalid.mj                         correct
[SUCCESS] syntax:ReceiverParameter.invalid.mj                     correct
[SUCCESS] syntax:ReturnWhile.invalid.mj                           correct
[SUCCESS] syntax:SimpleMethodCall.valid.mj                        correct
[SUCCESS] syntax:SpecialMethod.mj                                 correct
[SUCCESS] syntax:StaticInt.invalid.mj                             correct
[SUCCESS] syntax:StringIsValidVarType.valid.mj                    correct
[SUCCESS] syntax:ThrowsWithIdent.valid.mj                         correct
[SUCCESS] syntax:TwoClasses.valid.mj                              correct
[SUCCESS] syntax:UnaryExpressions.mj                              correct
[SUCCESS] syntax:UnaryMinusAfterBinOp.valid.mj                    correct
[SUCCESS] syntax:UnderscoreNamesTypes.mj                          correct
[SUCCESS] syntax:Unicode.invalid.mj                               correct
[SUCCESS] syntax:UseFor.invalid.mj                                correct
[SUCCESS] syntax:ValidIdentifier.valid.mj                         correct
[SUCCESS] syntax:ValidSyntaxInvalidSemantics.mj                   correct
[SUCCESS] syntax:WeirdNewArraySyntax.valid.mj                     correct
[SUCCESS] syntax:WhileWithSemicolon.valid.mj                      correct
[SUCCESS] syntax:WildValidSyntax.mj                               correct
----------------------------------------
All 77 run tests succeeded
Running ast tests
[SUCCESS] ast:AccessChain.valid.mj                             correct
[SUCCESS] ast:Add.valid.mj                                     correct
[SUCCESS] ast:ArrayAccess.valid.mj                             correct
[SUCCESS] ast:AssignmentExpressionStatementAfterIf.valid.mj    correct
[SUCCESS] ast:BlockStatement.mj                                correct
[SUCCESS] ast:Braces.valid.mj                                  correct
[SUCCESS] ast:ComplexExpression.valid.mj                       correct
[SUCCESS] ast:DeeplyNestedCalc.valid.mj                        correct
[SUCCESS] ast:DerCompilerMain.valid.mj                         correct
[SUCCESS] ast:Empty.valid.mj                                   correct
[SUCCESS] ast:EmptyClassNamedStaticMethod.mj                   correct
[SUCCESS] ast:EveryPossibleLanguageConstruct.valid.mj          correct
[SUCCESS] ast:Foo.valid.mj                                     correct
[SUCCESS] ast:FullClass.valid.mj                               correct
[SUCCESS] ast:HelloWorld.mj                                    correct
[SUCCESS] ast:IfWhileNoBraces.valid.mj                         correct
[SUCCESS] ast:ManyBraces.valid.mj                              correct
[SUCCESS] ast:ManyParentheses.valid.mj                         correct
[SUCCESS] ast:MethodInvocation.valid.mj                        correct
[SUCCESS] ast:MethodInvocationArrayAccess.valid.mj             correct
[SUCCESS] ast:MultiDimensionalArrays.mj                        correct
[SUCCESS] ast:MultipleReturnStatements.valid.mj                correct
[SUCCESS] ast:NegativeIntegerLiterals.mj                       correct
[SUCCESS] ast:NewArrayWithAccess1.valid.mj                     correct
[SUCCESS] ast:NewArrayWithAccess2.valid.mj                     correct
[SUCCESS] ast:NotNot.valid.mj                                  correct
[SUCCESS] ast:PostfixOP.mj                                     correct
[SUCCESS] ast:SimpleMethodCall.valid.mj                        correct
[SUCCESS] ast:SpecialMethod.mj                                 correct
[SUCCESS] ast:StringIsValidVarType.valid.mj                    correct
[SUCCESS] ast:ThrowsWithIdent.valid.mj                         correct
[SUCCESS] ast:TwoClasses.valid.mj                              correct
[SUCCESS] ast:UnaryExpressions.mj                              correct
[SUCCESS] ast:UnaryMinusAfterBinOp.valid.mj                    correct
[SUCCESS] ast:UnderscoreNamesTypes.mj                          correct
[SUCCESS] ast:ValidIdentifier.valid.mj                         correct
[SUCCESS] ast:ValidSyntaxInvalidSemantics.mj                   correct
[SUCCESS] ast:WeirdNewArraySyntax.valid.mj                     correct
[SUCCESS] ast:WhileWithSemicolon.valid.mj                      correct
[SUCCESS] ast:WildValidSyntax.mj                               correct
----------------------------------------
All 40 run tests succeeded
Running semantic tests
[SUCCESS] semantic:AcceptableConstants.valid.mj                         correct
[SUCCESS] semantic:ArgsOtherScope.valid.mj                              correct
[SUCCESS] semantic:ArgsUsageInBody.invalid.mj                           correct
[SUCCESS] semantic:ArrayAcces.valid.mj                                  correct
[SUCCESS] semantic:ArrayAccessInExpressionStatement.invalid.mj          correct
[SUCCESS] semantic:ArrayAccessOnNonArray.invalid.mj                     correct
[SUCCESS] semantic:ArrayAccessTooDeep.invalid.mj                        correct
[SUCCESS] semantic:ArrayLengthIsNotAllowed.invalid.mj                   correct
[SUCCESS] semantic:ArrayReturnType.valid.mj                             correct
[SUCCESS] semantic:AssignNullToBoolean.invalid.mj                       correct
[SUCCESS] semantic:AssignNullToInt.invalid.mj                           correct
[SUCCESS] semantic:AssignToBinaryOperator.invalid.mj                    correct
[SUCCESS] semantic:AssignToBooleanLiteral.invalid.mj                    correct
[SUCCESS] semantic:AssignToIntLiteral.invalid.mj                        correct
[SUCCESS] semantic:AssignToLValue.valid.mj                              correct
[SUCCESS] semantic:AssignToMethodCall.invalid.mj                        correct
[SUCCESS] semantic:AssignToNewObjectExpr.invalid.mj                     correct
[SUCCESS] semantic:AssignToThis.invalid.mj                              correct
[SUCCESS] semantic:AssignToUnaryOperator.invalid.mj                     correct
[SUCCESS] semantic:AssigningBooleanToInt.invalid.mj                     correct
[SUCCESS] semantic:AssignmentInCondition.valid.mj                       correct
[SUCCESS] semantic:AssignmentToAssigment.invalid.mj                     correct
[SUCCESS] semantic:AssignmentToMethodInvocation.invalid.mj              correct
[SUCCESS] semantic:AssignmentToSum.invalid.mj                           correct
[SUCCESS] semantic:BareMain.valid.mj                                    correct
[SUCCESS] semantic:BoolAssignmentInIf.valid.mj                          correct
[SUCCESS] semantic:BraceForImpactWithBraces.valid.mj                    correct
[SUCCESS] semantic:Brainfuck.valid.mj                                   correct
[SUCCESS] semantic:CallingLocalMethodInStaticContext.invalid.mj         correct
[SUCCESS] semantic:CallingMainMethod.invalid.mj                         correct
[SUCCESS] semantic:CallingMainMethod2.invalid.mj                        correct
[SUCCESS] semantic:CallingMainMethodInStaticContext.invalid.mj          correct
[SUCCESS] semantic:CallingMethodOnNonObject.invalid.mj                  correct
[SUCCESS] semantic:ChainedAccess.valid.mj                               correct
[SUCCESS] semantic:ClassNameCollision.invalid.mj                        correct
[SUCCESS] semantic:CompareNullWithBoolean.invalid.mj                    correct
[SUCCESS] semantic:CompareNullWithInteger.invalid.mj                    correct
[SUCCESS] semantic:CompareRefWithNull.valid.mj                          correct
[SUCCESS] semantic:CompilerBuiltins.valid.mj                            correct
[SUCCESS] semantic:CompilerBuiltinsOverriding1.valid.mj                 correct
[SUCCESS] semantic:CompilerBuiltinsOverriding2.valid.mj                 correct
[SUCCESS] semantic:CompilerBuiltinsOverriding3.valid.mj                 correct
[SUCCESS] semantic:CompilerBuiltinsOverriding4.invalid.mj               correct
[SUCCESS] semantic:ConstantTooLarge.invalid.mj                          correct
[SUCCESS] semantic:ConstantTooSmall.invalid.mj                          correct
[SUCCESS] semantic:CreatingNewStringObject.invalid.mj                   correct
[SUCCESS] semantic:DeclaringClassString.invalid.mj                      correct
[SUCCESS] semantic:DisallowedMethodOverloading.invalid.mj               correct
[SUCCESS] semantic:DisjunctNameSpaces.valid.mj                          correct
[SUCCESS] semantic:DuplicateFieldAndMethodNames.valid.mj                correct
[SUCCESS] semantic:DuplicateFieldNames.invalid.mj                       correct
[SUCCESS] semantic:DuplicateFields.invalid.mj                           correct
[SUCCESS] semantic:DuplicateLocalVar.invalid.mj                         correct
[SUCCESS] semantic:DuplicateLocalVarInIf.invalid.mj                     correct
[SUCCESS] semantic:DuplicateMethodNames.invalid.mj                      correct
[SUCCESS] semantic:DuplicateParameter.invalid.mj                        correct
[SUCCESS] semantic:DuplicateParams.invalid.mj                           correct
[SUCCESS] semantic:DuplicateVariableNames.invalid.mj                    correct
[SUCCESS] semantic:DuplicateVariableNames.valid.mj                      correct
[SUCCESS] semantic:DuplicateVariableNames2.invalid.mj                   correct
[SUCCESS] semantic:DuplicateVariableNames3.invalid.mj                   correct
[SUCCESS] semantic:DuplicateVariableNames4.invalid.mj                   correct
[SUCCESS] semantic:DuplicateVariableNamesInnerScopes.invalid.mj         correct
[SUCCESS] semantic:DynamicCallingMain.invalid.mj                        correct
[SUCCESS] semantic:EmptyFile.invalid.mj                                 correct
[SUCCESS] semantic:ExpressionStatementWithoutSideEffects.invalid.mj     correct
[SUCCESS] semantic:ExpressionStatementWithoutSideEffects2.invalid.mj    correct
[SUCCESS] semantic:ExpressionStatementWithoutSideEffects3.invalid.mj    correct
[SUCCESS] semantic:ExpressionStatementWithoutSideEffects4.invalid.mj    correct
[SUCCESS] semantic:ExpressionStatementWithoutSideEffects5.invalid.mj    correct
[SUCCESS] semantic:ExpressionStatementsWithSideEffects.valid.mj         correct
[SUCCESS] semantic:Fibonacci.valid.mj                                   correct
[SUCCESS] semantic:FibonacciViaLocalVars.valid.mj                       correct
[SUCCESS] semantic:FibonacciViaRecursion.valid.mj                       correct
[SUCCESS] semantic:FieldAccessInMainMethod.invalid.mj                   correct
[SUCCESS] semantic:FieldAccessOnNonObject.invalid.mj                    correct
[SUCCESS] semantic:FieldMethodParameterSameName.valid.mj                correct
[SUCCESS] semantic:FieldNameCollision.invalid.mj                        correct
[SUCCESS] semantic:FlushInStream.invalid.mj                             correct
[SUCCESS] semantic:FlushReturnValueUsed.invalid.mj                      correct
[SUCCESS] semantic:FlushWithArg.invalid.mj                              correct
[SUCCESS] semantic:FlushWithParameters.invalid.mj                       correct
[SUCCESS] semantic:FunctionWIthoutReturn.invalid.mj                     correct
[SUCCESS] semantic:GameOfLife.valid.mj                                  correct
[SUCCESS] semantic:IndefiniteAssignment.valid.mj                        correct
[SUCCESS] semantic:IntAssignmentInIf.invalid.mj                         correct
[SUCCESS] semantic:IntegerInConditions.invalid.mj                       correct
[SUCCESS] semantic:InvalidArrayIndex.invalid.mj                         correct
[SUCCESS] semantic:InvalidAssignment1.invalid.mj                        correct
[SUCCESS] semantic:InvalidAssignment10.invalid.mj                       correct
[SUCCESS] semantic:InvalidAssignment11.invalid.mj                       correct
[SUCCESS] semantic:InvalidAssignment12.invalid.mj                       correct
[SUCCESS] semantic:InvalidAssignment2.invalid.mj                        correct
[SUCCESS] semantic:InvalidAssignment3.invalid.mj                        correct
[SUCCESS] semantic:InvalidAssignment4.invalid.mj                        correct
[SUCCESS] semantic:InvalidAssignment5.invalid.mj                        correct
[SUCCESS] semantic:InvalidAssignment6.invalid.mj                        correct
[SUCCESS] semantic:InvalidAssignment7.invalid.mj                        correct
[SUCCESS] semantic:InvalidAssignment9.invalid.mj                        correct
[SUCCESS] semantic:InvalidMethodInvocation.invalid.mj                   correct
[SUCCESS] semantic:InvalidTypeOnAssignment.invalid.mj                   correct
[SUCCESS] semantic:InvalidVoid1.invalid.mj                              correct
[SUCCESS] semantic:InvalidVoid2.invalid.mj                              correct
[SUCCESS] semantic:InvalidVoid3.invalid.mj                              correct
[SUCCESS] semantic:LValues.valid.mj                                     correct
[SUCCESS] semantic:LargeIntegerLiteral.invalid.mj                       correct
[SUCCESS] semantic:LargeIntegerLiterals.valid.mj                        correct
[SUCCESS] semantic:LargeNegativeIntegerLiteral.invalid.mj               correct
[SUCCESS] semantic:LargeNegativeIntegerLiteral.valid.mj                 correct
[SUCCESS] semantic:LegalOverride.valid.mj                               correct
[SUCCESS] semantic:LocalVariableArgs.invalid.mj                         correct
[SUCCESS] semantic:LogicalNotForInteger1.invalid.mj                     correct
[SUCCESS] semantic:LogicalNotForInteger2.invalid.mj                     correct
[SUCCESS] semantic:LvalueInParenthesesAssigned.valid.mj                 correct
[SUCCESS] semantic:MainCallingMain.invalid.mj                           correct
[SUCCESS] semantic:MainMethodArgUsageNotNamedArgs.invalid.mj            correct
[SUCCESS] semantic:MainMethodCalled.invalid.mj                          correct
[SUCCESS] semantic:MainMethodWithWrongName.invalid.mj                   correct
[SUCCESS] semantic:MainMethodWithWrongParamType.invalid.mj              correct
[SUCCESS] semantic:MainMethodWithoutStatic.invalid.mj                   correct
[SUCCESS] semantic:MethodMissingReturn.invalid.mj                       correct
[SUCCESS] semantic:MethodMissingReturn2.invalid.mj                      correct
[SUCCESS] semantic:MethodMissingReturn3.invalid.mj                      correct
[SUCCESS] semantic:MethodMissingReturn4.invalid.mj                      correct
[SUCCESS] semantic:MethodMissingReturn5.invalid.mj                      correct
[SUCCESS] semantic:MethodNameCollision.invalid.mj                       correct
[SUCCESS] semantic:MethodNotMissingReturn.valid.mj                      correct
[SUCCESS] semantic:MethodNotMissingReturn2.valid.mj                     correct
[SUCCESS] semantic:MethodNotMissingReturn3.valid.mj                     correct
[SUCCESS] semantic:MethodNotMissingReturn4.valid.mj                     correct
[SUCCESS] semantic:MethodNotMissingReturn5.valid.mj                     correct
[SUCCESS] semantic:MissingMainMethod.invalid.mj                         correct
[SUCCESS] semantic:MissingMainMethod2.invalid.mj                        correct
[SUCCESS] semantic:MissingMethod.invalid.mj                             correct
[SUCCESS] semantic:MissingReturn1.invalid.mj                            correct
[SUCCESS] semantic:MissingReturn2.invalid.mj                            correct
[SUCCESS] semantic:MissingReturn3.invalid.mj                            correct
[SUCCESS] semantic:MissingReturn4.invalid.mj                            correct
[SUCCESS] semantic:MissingReturn5.invalid.mj                            correct
[SUCCESS] semantic:MissingReturn6.valid.mj                              correct
[SUCCESS] semantic:MissingReturnIf.invalid.mj                           correct
[SUCCESS] semantic:MultipleInstanciations.invalid.mj                    correct
[SUCCESS] semantic:MultipleMainMethods.invalid.mj                       correct
[SUCCESS] semantic:NameSpacingTest.valid.mj                             correct
[SUCCESS] semantic:NewArrayExprInExprStatement.invalid.mj               correct
[SUCCESS] semantic:NewObjectExprInExprStatement.invalid.mj              correct
[SUCCESS] semantic:NoMainMethod.invalid.mj                              correct
[SUCCESS] semantic:Overflow.valid.mj                                    correct
[SUCCESS] semantic:OverloadedMethod.invalid.mj                          correct
[SUCCESS] semantic:PrimeSieve.valid.mj                                  correct
[SUCCESS] semantic:PrintBoolean.invalid.mj                              correct
[SUCCESS] semantic:PrintlnBoolean.invalid.mj                            correct
[SUCCESS] semantic:PrintlnNoArgs.invalid.mj                             correct
[SUCCESS] semantic:PrintlnWrongSignature.invalid.mj                     correct
[SUCCESS] semantic:RedefinitionOfString.invalid.mj                      correct
[SUCCESS] semantic:ReturnType1.invalid.mj                               correct
[SUCCESS] semantic:ReturnType2.invalid.mj                               correct
[SUCCESS] semantic:SameNames.invalid.mj                                 correct
[SUCCESS] semantic:ShadowFieldName.valid.mj                             correct
[SUCCESS] semantic:ShadowStdlibViaClass.invalid.mj                      correct
[SUCCESS] semantic:ShadowStdlibViaField.invalid.mj                      correct
[SUCCESS] semantic:ShadowStdlibViaField2.invalid.mj                     correct
[SUCCESS] semantic:ShadowStdlibViaLocalVar.invalid.mj                   correct
[SUCCESS] semantic:ShadowStdlibViaMethod.valid.mj                       correct
[SUCCESS] semantic:ShadowStdlibViaParameter.invalid.mj                  correct
[SUCCESS] semantic:ShadowSystemOutToBool.valid.mj                       correct
[SUCCESS] semantic:ShadowedField.valid.mj                               correct
[SUCCESS] semantic:ShadowedLocalVariable.invalid.mj                     correct
[SUCCESS] semantic:ShadowedParamter.invalid.mj                          correct
[SUCCESS] semantic:SquareRectangle.valid.mj                             correct
[SUCCESS] semantic:StaticAndNonStaticMain1.invalid.mj                   correct
[SUCCESS] semantic:StaticAndNonStaticMain2.valid.mj                     correct
[SUCCESS] semantic:StdlibCalls.valid.mj                                 correct
[SUCCESS] semantic:StringArray.valid.mj                                 correct
[SUCCESS] semantic:StringClass.invalid.mj                               correct
[SUCCESS] semantic:StringClass2.invalid.mj                              correct
[SUCCESS] semantic:StringConstruction.invalid.mj                        correct
[SUCCESS] semantic:StringInstantiation.invalid.mj                       correct
[SUCCESS] semantic:StringObjectCreationNotAllowed.invalid.mj            correct
[SUCCESS] semantic:StringUsages.valid.mj                                correct
[SUCCESS] semantic:StringVariable.valid.mj                              correct
[SUCCESS] semantic:StringVariableDeclaration.valid.mj                   correct
[SUCCESS] semantic:System.valid.mj                                      correct
[SUCCESS] semantic:SystemAssignment.invalid.mj                          correct
[SUCCESS] semantic:SystemInReturnValue.valid.mj                         correct
[SUCCESS] semantic:SystemIsNotIntrinsicClass.invalid.mj                 correct
[SUCCESS] semantic:SystemOutWrite.valid.mj                              correct
[SUCCESS] semantic:ThisInStatic.invalid.mj                              correct
[SUCCESS] semantic:ThisInStaticContext.invalid.mj                       correct
[SUCCESS] semantic:Throws.valid.mj                                      correct
[SUCCESS] semantic:TooLargeNegativeIntegerLiteral.invalid.mj            correct
[SUCCESS] semantic:TooLargePositiveIntegerLiteral.invalid.mj            correct
[SUCCESS] semantic:TwoPublicStaticMethods.invalid.mj                    correct
[SUCCESS] semantic:TypeErrorOnSystemOutPrintln.invalid.mj               correct
[SUCCESS] semantic:TypesNamesComplicated.valid.mj                       correct
[SUCCESS] semantic:Underflow.valid.mj                                   correct
[SUCCESS] semantic:Unlambda.valid.mj                                    correct
[SUCCESS] semantic:UseArgs.invalid.mj                                   correct
[SUCCESS] semantic:UseBeforeDef.valid.mj                                correct
[SUCCESS] semantic:UseBeforeDefine.invalid.mj                           correct
[SUCCESS] semantic:UseBeforeDefineField.invalid.mj                      correct
[SUCCESS] semantic:UseScopes.valid.mj                                   correct
[SUCCESS] semantic:UseShadowedSystemClass.invalid.mj                    correct
[SUCCESS] semantic:UsingLocalVariableInDeclaration.valid.mj             correct
[SUCCESS] semantic:UsingLocalVariableInDeclaration2.valid.mj            correct
[SUCCESS] semantic:UsingLocalVariableInDeclaration3.valid.mj            correct
[SUCCESS] semantic:UsingUnknownClass.invalid.mj                         correct
[SUCCESS] semantic:UsingUnknownField.invalid.mj                         correct
[SUCCESS] semantic:UsingUnknownFieldOrLocalVar.invalid.mj               correct
[SUCCESS] semantic:UsingUnknownLocalVar.invalid.mj                      correct
[SUCCESS] semantic:UsingUnknownMethod.invalid.mj                        correct
[SUCCESS] semantic:UsingVoidInappropriately.invalid.mj                  correct
[SUCCESS] semantic:UsingVoidInappropriately2.invalid.mj                 correct
[SUCCESS] semantic:UsingVoidInappropriately3.invalid.mj                 correct
[SUCCESS] semantic:UsingVoidInappropriately4.invalid.mj                 correct
[SUCCESS] semantic:ValidReturn.valid.mj                                 correct
[SUCCESS] semantic:ValidStringUse.valid.mj                              correct
[SUCCESS] semantic:WriteBoolean.invalid.mj                              correct
[SUCCESS] semantic:WrongArrayAccess.invalid.mj                          correct
[SUCCESS] semantic:WrongMainParameter.invalid.mj                        correct
[SUCCESS] semantic:WrongReturnValue.invalid.mj                          correct
[SUCCESS] semantic:WrongScope.invalid.mj                                correct
----------------------------------------
All 222 run tests succeeded
Running compile-firm-only tests
[SUCCESS] compile-firm-only:AcceptableConstants.valid.mj                    correct
[SUCCESS] compile-firm-only:ArgsOtherScope.valid.mj                         correct
[SUCCESS] compile-firm-only:ArrayAcces.valid.mj                             correct
[SUCCESS] compile-firm-only:ArrayReturnType.valid.mj                        correct
[SUCCESS] compile-firm-only:AssignToLValue.valid.mj                         correct
[SUCCESS] compile-firm-only:AssignmentInCondition.valid.mj                  correct
[SUCCESS] compile-firm-only:BareMain.valid.mj                               correct
[SUCCESS] compile-firm-only:BoolAssignmentInIf.valid.mj                     correct
[SUCCESS] compile-firm-only:BraceForImpactWithBraces.valid.mj               correct
[SUCCESS] compile-firm-only:Brainfuck.valid.mj                              correct
[SUCCESS] compile-firm-only:ChainedAccess.valid.mj                          correct
[SUCCESS] compile-firm-only:CompareRefWithNull.valid.mj                     correct
[SUCCESS] compile-firm-only:CompilerBuiltins.valid.mj                       correct
[SUCCESS] compile-firm-only:CompilerBuiltinsOverriding1.valid.mj            correct
[SUCCESS] compile-firm-only:CompilerBuiltinsOverriding2.valid.mj            correct
[SUCCESS] compile-firm-only:CompilerBuiltinsOverriding3.valid.mj            correct
[SUCCESS] compile-firm-only:DisjunctNameSpaces.valid.mj                     correct
[SUCCESS] compile-firm-only:DuplicateFieldAndMethodNames.valid.mj           correct
[SUCCESS] compile-firm-only:DuplicateVariableNames.valid.mj                 correct
[SUCCESS] compile-firm-only:ExpressionStatementsWithSideEffects.valid.mj    correct
[SUCCESS] compile-firm-only:Fibonacci.valid.mj                              correct
[SUCCESS] compile-firm-only:FibonacciViaLocalVars.valid.mj                  correct
[SUCCESS] compile-firm-only:FibonacciViaRecursion.valid.mj                  correct
[SUCCESS] compile-firm-only:FieldMethodParameterSameName.valid.mj           correct
[SUCCESS] compile-firm-only:GameOfLife.valid.mj                             correct
[SUCCESS] compile-firm-only:IndefiniteAssignment.valid.mj                   correct
[SUCCESS] compile-firm-only:LValues.valid.mj                                correct
[SUCCESS] compile-firm-only:LargeIntegerLiterals.valid.mj                   correct
[SUCCESS] compile-firm-only:LargeNegativeIntegerLiteral.valid.mj            correct
[SUCCESS] compile-firm-only:LegalOverride.valid.mj                          correct
[SUCCESS] compile-firm-only:LvalueInParenthesesAssigned.valid.mj            correct
[SUCCESS] compile-firm-only:MethodNotMissingReturn.valid.mj                 correct
[SUCCESS] compile-firm-only:MethodNotMissingReturn2.valid.mj                correct
[SUCCESS] compile-firm-only:MethodNotMissingReturn3.valid.mj                correct
[SUCCESS] compile-firm-only:MethodNotMissingReturn4.valid.mj                correct
[SUCCESS] compile-firm-only:MethodNotMissingReturn5.valid.mj                correct
[SUCCESS] compile-firm-only:MissingReturn6.valid.mj                         correct
[SUCCESS] compile-firm-only:NameSpacingTest.valid.mj                        correct
[SUCCESS] compile-firm-only:Overflow.valid.mj                               correct
[SUCCESS] compile-firm-only:PrimeSieve.valid.mj                             correct
[SUCCESS] compile-firm-only:ShadowFieldName.valid.mj                        correct
[SUCCESS] compile-firm-only:ShadowStdlibViaMethod.valid.mj                  correct
[SUCCESS] compile-firm-only:ShadowSystemOutToBool.valid.mj                  correct
[SUCCESS] compile-firm-only:ShadowedField.valid.mj                          correct
[SUCCESS] compile-firm-only:SquareRectangle.valid.mj                        correct
[SUCCESS] compile-firm-only:StaticAndNonStaticMain2.valid.mj                correct
[SUCCESS] compile-firm-only:StdlibCalls.valid.mj                            correct
[SUCCESS] compile-firm-only:StringArray.valid.mj                            correct
[SUCCESS] compile-firm-only:StringUsages.valid.mj                           correct
[SUCCESS] compile-firm-only:StringVariable.valid.mj                         correct
[SUCCESS] compile-firm-only:StringVariableDeclaration.valid.mj              correct
[SUCCESS] compile-firm-only:System.valid.mj                                 correct
[SUCCESS] compile-firm-only:SystemInReturnValue.valid.mj                    correct
[SUCCESS] compile-firm-only:SystemOutWrite.valid.mj                         correct
[SUCCESS] compile-firm-only:Throws.valid.mj                                 correct
[SUCCESS] compile-firm-only:TypesNamesComplicated.valid.mj                  correct
[SUCCESS] compile-firm-only:Underflow.valid.mj                              correct
[SUCCESS] compile-firm-only:Unlambda.valid.mj                               correct
[SUCCESS] compile-firm-only:UseBeforeDef.valid.mj                           correct
[SUCCESS] compile-firm-only:UseScopes.valid.mj                              correct
[SUCCESS] compile-firm-only:UsingLocalVariableInDeclaration.valid.mj        correct
[SUCCESS] compile-firm-only:UsingLocalVariableInDeclaration2.valid.mj       correct
[SUCCESS] compile-firm-only:UsingLocalVariableInDeclaration3.valid.mj       correct
[SUCCESS] compile-firm-only:ValidReturn.valid.mj                            correct
[SUCCESS] compile-firm-only:ValidStringUse.valid.mj                         correct
[SUCCESS] compile-firm-only:AndiTest2.java                correct
[SUCCESS] compile-firm-only:FirmInfLoop.java              correct
[SUCCESS] compile-firm-only:NestedInfiniteLoops.java      correct
[SUCCESS] compile-firm-only:Sudoku.java                   correct
[SUCCESS] compile-firm-only:UbAssignmentInCondition.mj    correct
[SUCCESS] compile-firm-only:UbLoopFun.mj                  correct
[SUCCESS] compile-firm-only:UbSimpleArrayDeref.mj         correct
[SUCCESS] compile-firm-only:UnreachableReturn.mj          correct
----------------------------------------
All 73 run tests succeeded
Running compile-only tests
[SUCCESS] compile-only:AndiTest2.java                correct
[SUCCESS] compile-only:FirmInfLoop.java              correct
[SUCCESS] compile-only:NestedInfiniteLoops.java      correct
[SUCCESS] compile-only:Sudoku.java                   correct
[SUCCESS] compile-only:UbAssignmentInCondition.mj    correct
[SUCCESS] compile-only:UbLoopFun.mj                  correct
[SUCCESS] compile-only:UbSimpleArrayDeref.mj         correct
[SUCCESS] compile-only:UnreachableReturn.mj          correct
[SUCCESS] compile-only:AcceptableConstants.valid.mj                    correct
[SUCCESS] compile-only:ArgsOtherScope.valid.mj                         correct
[SUCCESS] compile-only:ArrayAcces.valid.mj                             correct
[SUCCESS] compile-only:ArrayReturnType.valid.mj                        correct
[FAIL   ] compile-only:AssignToLValue.valid.mj                         file can't be compiled
Report for failing test case AssignToLValue.valid.mj
File can't be compiled
Error code: 69
Error output:

[0001]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[87:23]
[0002]    [TRF01010] warning: This program references a static null pointer at node Store T[89:25]
[0003]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[97:33]
[0004]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[124:60]
[0005]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[151:87]
[0006]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[169:105]
[0007]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[187:123]
[0008]    [TRF01010] warning: This program references a static null pointer at node Store T[189:125]
[0009]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[196:132]
[0010]    [TRF01010] warning: This program references a static null pointer at node Store T[198:134]
[0011]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[87:23]
[0012]    [TRF01010] warning: This program references a static null pointer at node Store T[89:25]
[0013]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[97:33]
[0014]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[124:60]
[0015]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[151:87]
[0016]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[169:105]
[0017]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[187:123]
[0018]    [TRF01010] warning: This program references a static null pointer at node Store T[189:125]
[0019]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[196:132]
[0020]    [TRF01010] warning: This program references a static null pointer at node Store T[198:134]
[0021]    [TRF01010] warning: This program references a static null pointer at node Store T[89:25]
[0022]    [TRF01010] warning: This program references a static null pointer at node Store T[189:125]
[0023]    [TRF01010] warning: This program references a static null pointer at node Store T[198:134]
[0024]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[87:23]
[0025]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[97:33]
[0026]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[124:60]
[0027]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[151:87]
[0028]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[169:105]
[0029]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[187:123]
[0030]    [TRF01010] warning: This program references a static null pointer at nodeAdd P[196:132]
[0031]    [GEN00110] error: gcc for runtime failed:
[0032]    Gcc returned:
[0033]    AssignToLValue.S: Assembler messages:
[0034]    AssignToLValue.S:14: Error: operand type mismatch for `lea'
[0035]    AssignToLValue.S:19: Error: operand type mismatch for `lea'
[0036]    AssignToLValue.S:46: Error: operand type mismatch for `lea'
[0037]    AssignToLValue.S:74: Error: operand type mismatch for `lea'
[0038]    AssignToLValue.S:90: Error: operand type mismatch for `lea'
[0039]    AssignToLValue.S:107: Error: operand type mismatch for `lea'
[0040]    AssignToLValue.S:112: Error: operand type mismatch for `lea'
[0041]    
[0042]    

Output:



Source file:

[0001]    class Foo {
[0002]    
[0003]        public boolean field;
[0004]    
[0005]        public void foo(int a) {
[0006]            a = 10;
[0007]            field = true;
[0008]    
[0009]            int[] b;
[0010]            b[10] = 100;
[0011]    
[0012]            Foo[][][] nest;
[0013]            Foo[][] nestOneLess;
[0014]            Foo[] nestTwoLess;
[0015]            Foo nestThreeLess;
[0016]    
[0017]            nest[2][2][2] = null;
[0018]            nest[2][2][2] = nestThreeLess;
[0019]    
[0020]            nest[2][2] = null;
[0021]            nest[2][2] = nestTwoLess;
[0022]    
[0023]            nest[2] = null;
[0024]            nest[2] = nestOneLess;
[0025]    
[0026]            nest = null;
[0027]            nest = nest;
[0028]        }
[0029]    
[0030]        public static void main(String[] args) {
[0031]            int a;
[0032]            a = 20;
[0033]        }
[0034]    }

[SUCCESS] compile-only:AssignmentInCondition.valid.mj                  correct
[SUCCESS] compile-only:BareMain.valid.mj                               correct
[SUCCESS] compile-only:BoolAssignmentInIf.valid.mj                     correct
[SUCCESS] compile-only:BraceForImpactWithBraces.valid.mj               correct
[SUCCESS] compile-only:Brainfuck.valid.mj                              correct
[SUCCESS] compile-only:ChainedAccess.valid.mj                          correct
[SUCCESS] compile-only:CompareRefWithNull.valid.mj                     correct
[SUCCESS] compile-only:CompilerBuiltins.valid.mj                       correct
[SUCCESS] compile-only:CompilerBuiltinsOverriding1.valid.mj            correct
[SUCCESS] compile-only:CompilerBuiltinsOverriding2.valid.mj            correct
[SUCCESS] compile-only:CompilerBuiltinsOverriding3.valid.mj            correct
[SUCCESS] compile-only:DisjunctNameSpaces.valid.mj                     correct
[SUCCESS] compile-only:DuplicateFieldAndMethodNames.valid.mj           correct
[SUCCESS] compile-only:DuplicateVariableNames.valid.mj                 correct
[SUCCESS] compile-only:ExpressionStatementsWithSideEffects.valid.mj    correct
[SUCCESS] compile-only:Fibonacci.valid.mj                              correct
[SUCCESS] compile-only:FibonacciViaLocalVars.valid.mj                  correct
[SUCCESS] compile-only:FibonacciViaRecursion.valid.mj                  correct
[SUCCESS] compile-only:FieldMethodParameterSameName.valid.mj           correct
[SUCCESS] compile-only:GameOfLife.valid.mj                             correct
[SUCCESS] compile-only:IndefiniteAssignment.valid.mj                   correct
[SUCCESS] compile-only:LValues.valid.mj                                correct
[SUCCESS] compile-only:LargeIntegerLiterals.valid.mj                   correct
[SUCCESS] compile-only:LargeNegativeIntegerLiteral.valid.mj            correct
[SUCCESS] compile-only:LegalOverride.valid.mj                          correct
[SUCCESS] compile-only:LvalueInParenthesesAssigned.valid.mj            correct
[SUCCESS] compile-only:MethodNotMissingReturn.valid.mj                 correct
[SUCCESS] compile-only:MethodNotMissingReturn2.valid.mj                correct
[SUCCESS] compile-only:MethodNotMissingReturn3.valid.mj                correct
[SUCCESS] compile-only:MethodNotMissingReturn4.valid.mj                correct
[SUCCESS] compile-only:MethodNotMissingReturn5.valid.mj                correct
[SUCCESS] compile-only:MissingReturn6.valid.mj                         correct
[SUCCESS] compile-only:NameSpacingTest.valid.mj                        correct
[SUCCESS] compile-only:Overflow.valid.mj                               correct
[SUCCESS] compile-only:PrimeSieve.valid.mj                             correct
[SUCCESS] compile-only:ShadowFieldName.valid.mj                        correct
[SUCCESS] compile-only:ShadowStdlibViaMethod.valid.mj                  correct
[SUCCESS] compile-only:ShadowSystemOutToBool.valid.mj                  correct
[SUCCESS] compile-only:ShadowedField.valid.mj                          correct
[SUCCESS] compile-only:SquareRectangle.valid.mj                        correct
[SUCCESS] compile-only:StaticAndNonStaticMain2.valid.mj                correct
[SUCCESS] compile-only:StdlibCalls.valid.mj                            correct
[SUCCESS] compile-only:StringArray.valid.mj                            correct
[SUCCESS] compile-only:StringUsages.valid.mj                           correct
[SUCCESS] compile-only:StringVariable.valid.mj                         correct
[SUCCESS] compile-only:StringVariableDeclaration.valid.mj              correct
[SUCCESS] compile-only:System.valid.mj                                 correct
[SUCCESS] compile-only:SystemInReturnValue.valid.mj                    correct
[SUCCESS] compile-only:SystemOutWrite.valid.mj                         correct
[SUCCESS] compile-only:Throws.valid.mj                                 correct
[SUCCESS] compile-only:TypesNamesComplicated.valid.mj                  correct
[SUCCESS] compile-only:Underflow.valid.mj                              correct
[SUCCESS] compile-only:Unlambda.valid.mj                               correct
[SUCCESS] compile-only:UseBeforeDef.valid.mj                           correct
[SUCCESS] compile-only:UseScopes.valid.mj                              correct
[SUCCESS] compile-only:UsingLocalVariableInDeclaration.valid.mj        correct
[SUCCESS] compile-only:UsingLocalVariableInDeclaration2.valid.mj       correct
[SUCCESS] compile-only:UsingLocalVariableInDeclaration3.valid.mj       correct
[SUCCESS] compile-only:ValidReturn.valid.mj                            correct
[SUCCESS] compile-only:ValidStringUse.valid.mj                         correct
----------------------------------------
Ran 73 tests, of which 1 failed.
A full report for each test can be found at ../../../mjtest/reports/08-02-22_13-26-11_compile-only.failed
Running compile-firm tests
[SUCCESS] compile-firm:Ackermann.java                       correct
[SUCCESS] compile-firm:AllocEmpty.java                      correct
[SUCCESS] compile-firm:AllocEmpty2.java                     correct
[SUCCESS] compile-firm:AlphabeticalRegisterTransfer.java    correct
[SUCCESS] compile-firm:AndiTest1.java                       correct
[SUCCESS] compile-firm:AndiTest3.java                       correct
[SUCCESS] compile-firm:AndiTest4.java                       correct
[SUCCESS] compile-firm:AocDay01.0.inputc                    correct
[SUCCESS] compile-firm:Arithmetic.java                      correct
[SUCCESS] compile-firm:ArrayIndexEvaluationOrder.java       correct
[SUCCESS] compile-firm:ArrayList.java                       correct
[SUCCESS] compile-firm:Arrays.java                          correct
[SUCCESS] compile-firm:AssignmentEvaluationOrder.java       correct
[SUCCESS] compile-firm:AssignmentExpressionAsParam.java     correct
[SUCCESS] compile-firm:AssignmentInCondition.java           correct
[SUCCESS] compile-firm:AssignmentReturnValue.java           correct
[SUCCESS] compile-firm:AssignmentTest.java                  correct
[SUCCESS] compile-firm:Base64.0.inputc                      correct
[SUCCESS] compile-firm:BinaryMultiply.java                  correct
[SUCCESS] compile-firm:BoolArray.java                       correct
[SUCCESS] compile-firm:BoolTest.java                        correct
[SUCCESS] compile-firm:Brainfuck.0.inputc                   correct
[SUCCESS] compile-firm:Brainfuck.1.inputc                   correct
[SUCCESS] compile-firm:Calculator.0.inputc                  correct
[SUCCESS] compile-firm:CorrectStepping.java                 correct
[SUCCESS] compile-firm:CsePhi.java                          correct
[SUCCESS] compile-firm:DeadCode.java                        correct
[SUCCESS] compile-firm:Division.java                        correct
[SUCCESS] compile-firm:EscapingArray.java                   correct
[SUCCESS] compile-firm:Factorial.0.inputc                   correct
[SUCCESS] compile-firm:Factorial.java                       correct
[SUCCESS] compile-firm:FizzBuzz.java                        correct
[SUCCESS] compile-firm:FuckTheSystem.java                   correct
[SUCCESS] compile-firm:GetterSetter.java                    correct
[SUCCESS] compile-firm:IfAndWhile.java                      correct
[SUCCESS] compile-firm:InfLoop2.java                        correct
[SUCCESS] compile-firm:InfiniteLoop.java                    correct
[SUCCESS] compile-firm:LazyOrNot.java                       correct
[SUCCESS] compile-firm:LinkedList.java                      correct
[SUCCESS] compile-firm:LinkedList2.java                     correct
[SUCCESS] compile-firm:Maths.java                           correct
[SUCCESS] compile-firm:MiniPhiDeconst.java                  correct
[SUCCESS] compile-firm:ModuloTest.java                      correct
[SUCCESS] compile-firm:MultiArrayReferenceTest.java         correct
[SUCCESS] compile-firm:NestedLoopSegfault.inf.java          correct
[SUCCESS] compile-firm:NestedLoops.java                     correct
[SUCCESS] compile-firm:Nulls.java                           correct
[SUCCESS] compile-firm:Nulls2.java                          correct
[SUCCESS] compile-firm:Objects.java                         correct
[SUCCESS] compile-firm:Print2D.java                         correct
[SUCCESS] compile-firm:QuickSort.java                       correct
[SUCCESS] compile-firm:Quine.java                           correct
[SUCCESS] compile-firm:RNG.java                             correct
[SUCCESS] compile-firm:RSA.java                             correct
[SUCCESS] compile-firm:Raytracer.0.inputc                   correct
[SUCCESS] compile-firm:Raytracer.1.inputc                   correct
[SUCCESS] compile-firm:RecursiveCall.java                   correct
[SUCCESS] compile-firm:RecursiveFoo.java                    correct
[SUCCESS] compile-firm:ReturnInNestedBlock.java             correct
[SUCCESS] compile-firm:ShiftOptimization.java               correct
[SUCCESS] compile-firm:TestAndFoo.java                      correct
[SUCCESS] compile-firm:TestOverflow.java                    correct
[SUCCESS] compile-firm:Vector.java                          correct
[SUCCESS] compile-firm:WhileArraySum.java                   correct
[SUCCESS] compile-firm:WhileWithAssignments.java            correct
----------------------------------------
All 65 run tests succeeded
Running compile tests
[SUCCESS] compile:Ackermann.java                       correct
[SUCCESS] compile:AllocEmpty.java                      correct
[SUCCESS] compile:AllocEmpty2.java                     correct
[SUCCESS] compile:AlphabeticalRegisterTransfer.java    correct
[SUCCESS] compile:AndiTest1.java                       correct
[SUCCESS] compile:AndiTest3.java                       correct
[SUCCESS] compile:AndiTest4.java                       correct
[FAIL   ] compile:AocDay01.0.inputc                    incorrect output
Report for failing test case AocDay01.0.inputc
Incorrect output
Expected output file: /mjtest/tests/exec/AocDay01.0.inputc.out
Expected output:

[0001]    �[31;1m## Day 1
[0002]    �[0mSolution: �[34;1m1688
[0003]    �[0mSolution: �[34;1m1728
[0004]    �[0m

Actual output:

[0001]    �[31;1m## Day 1
[0002]    �[0mSolution: �[34;1m0
[0003]    �[0mSolution: �[34;1m0
[0004]    �[0m

Output diff [expected <-> actual]:

[0001]      �[31;1m## Day 1
[0002]    - �[0mSolution: �[34;1m1688
[0003]    ?                      ^^^^
[0004]    + �[0mSolution: �[34;1m0
[0005]    ?                      ^
[0006]    - �[0mSolution: �[34;1m1728
[0007]    ?                      ^^^^
[0008]    + �[0mSolution: �[34;1m0
[0009]    ?                      ^
[0010]      �[0m

Source file:

[0001]    class Aoc {
[0002]        public static void main(String[] args) throws Exception {
[0003]            InputHelper inputHelper = new InputHelper();
[0004]            OutputHelper outputHelper = new OutputHelper();
[0005]            Day01 day01 = new Day01();
[0006]    
[0007]            IntList numbers = inputHelper.readIntegers();
[0008]            outputHelper.printDay(1);
[0009]            outputHelper.printSolution(day01.partOne(numbers));
[0010]            outputHelper.printSolution(day01.partTwo(numbers));
[0011]        }
[0012]    }
[0013]    
[0014]    class Day01 {
[0015]        public int partOne(IntList numbers) {
[0016]            int sum = 0;
[0017]            int i = 0;
[0018]            while (i < numbers.size - 1) {
[0019]                int first = numbers.data[i];
[0020]                int next = numbers.data[i + 1];
[0021]    
[0022]                if (next > first) {
[0023]                    sum = sum + 1;
[0024]                }
[0025]                i = i +1;
[0026]            }
[0027]            return sum;
[0028]        }
[0029]    
[0030]        public int partTwo(IntList numbers) {
[0031]            IntList slidingWindowSums = new IntList().init();
[0032]    
[0033]            int i = 0;
[0034]            while (i < numbers.size - 2) {
[0035]                int first = numbers.data[i];
[0036]                int second = numbers.data[i + 1];
[0037]                int third = numbers.data[i + 2];
[0038]                slidingWindowSums.add(first + second + third);
[0039]                i = i + 1;
[0040]            }
[0041]    
[0042]            return partOne(slidingWindowSums);
[0043]        }
[0044]    }
[0045]    
[0046]    class IntList {
[0047]        public int[] data;
[0048]        public int size;
[0049]        public int capacity;
[0050]    
[0051]        public IntList init() {
[0052]            this.capacity = 10;
[0053]            this.size = 0;
[0054]            this.data = new int[capacity];
[0055]    
[0056]            return this;
[0057]        }
[0058]    
[0059]        public void add(int number) {
[0060]            if (size >= capacity) {
[0061]                int[] newData = new int[2 * capacity];
[0062]    
[0063]                int i = 0;
[0064]                while (i < size) {
[0065]                    newData[i] = data[i];
[0066]                    i = i + 1;
[0067]                }
[0068]    
[0069]                data = newData;
[0070]                capacity = 2 * capacity;
[0071]            }
[0072]            data[size] = number;
[0073]            size = size + 1;
[0074]        }
[0075]    
[0076]        public int size() {
[0077]            return size;
[0078]        }
[0079]    }
[0080]    
[0081]    class InputHelper {
[0082]        public IntList readIntegers() throws Exception {
[0083]            int read;
[0084]            int currentNumber = 0;
[0085]            IntList numbers = new IntList().init();
[0086]            while ((read = System.in.read()) >= 0) {
[0087]                if (read == 10) {
[0088]                    numbers.add(currentNumber);
[0089]                    currentNumber = 0;
[0090]                } else {
[0091]                    currentNumber = currentNumber * 10 + (read - 48);
[0092]                }
[0093]            }
[0094]            return numbers;
[0095]        }
[0096]    }
[0097]    
[0098]    class OutputHelper {
[0099]        public void printSolution(int solution) {
[0100]            System.out.write(83);
[0101]            System.out.write(111);
[0102]            System.out.write(108);
[0103]            System.out.write(117);
[0104]            System.out.write(116);
[0105]            System.out.write(105);
[0106]            System.out.write(111);
[0107]            System.out.write(110);
[0108]            System.out.write(58);
[0109]            System.out.write(32);
[0110]            System.out.write(27);
[0111]            System.out.write(91);
[0112]            System.out.write(51);
[0113]            System.out.write(52);
[0114]            System.out.write(59);
[0115]            System.out.write(49);
[0116]            System.out.write(109);
[0117]            System.out.println(solution);
[0118]            System.out.write(27);
[0119]            System.out.write(91);
[0120]            System.out.write(48);
[0121]            System.out.write(109);
[0122]            System.out.flush();
[0123]        }
[0124]    
[0125]        public void printDay(int day) {
[0126]            System.out.write(27);
[0127]            System.out.write(91);
[0128]            System.out.write(51);
[0129]            System.out.write(49);
[0130]            System.out.write(59);
[0131]            System.out.write(49);
[0132]            System.out.write(109);
[0133]            System.out.write(35);
[0134]            System.out.write(35);
[0135]            System.out.write(32);
[0136]            System.out.write(68);
[0137]            System.out.write(97);
[0138]            System.out.write(121);
[0139]            System.out.write(32);
[0140]            System.out.println(day);
[0141]            System.out.write(27);
[0142]            System.out.write(91);
[0143]            System.out.write(48);
[0144]            System.out.write(109);
[0145]            System.out.flush();
[0146]        }
[0147]    
[0148]    }
[0149]    

Input file:

[0001]    173
[0002]    178
[0003]    179
[0004]    187
[0005]    196
[0006]    199
[0007]    200
[0008]    201
[0009]    210
[0010]    209
[0011]    210
[0012]    211
[0013]    221
[0014]    223
[0015]    235
[0016]    236
[0017]    237
[0018]    238
[0019]    242
[0020]    249
[0021]    247
[0022]    246
[0023]    256
[0024]    257
[0025]    258
[0026]    257
[0027]    258
[0028]    265
[0029]    293
[0030]    303
[0031]    304
[0032]    317
[0033]    322
[0034]    330
[0035]    336
[0036]    337
[0037]    340
[0038]    339
[0039]    350
[0040]    351
[0041]    352
[0042]    353
[0043]    349
[0044]    353
[0045]    342
[0046]    339
[0047]    341
[0048]    342
[0049]    348
[0050]    349
[0051]    350
[0052]    355
[0053]    362
[0054]    392
[0055]    388
[0056]    393
[0057]    404
[0058]    402
[0059]    401
[0060]    402
[0061]    405
[0062]    410
[0063]    411
[0064]    424
[0065]    425
[0066]    432
[0067]    434
[0068]    433
[0069]    435
[0070]    441
[0071]    420
[0072]    439
[0073]    461
[0074]    463
[0075]    464
[0076]    468
[0077]    469
[0078]    473
[0079]    485
[0080]    494
[0081]    493
[0082]    489
[0083]    490
[0084]    491
[0085]    497
[0086]    490
[0087]    491
[0088]    493
[0089]    519
[0090]    520
[0091]    553
[0092]    554
[0093]    560
[0094]    565
[0095]    574
[0096]    586
[0097]    599
[0098]    600
[0099]    601
[0100]    604
[0101]    578
[0102]    574
[0103]    578
[0104]    597
[0105]    598
[0106]    597
[0107]    607
[0108]    606
[0109]    608
[0110]    616
[0111]    613
[0112]    615
[0113]    618
[0114]    617
[0115]    619
[0116]    626
[0117]    638
[0118]    639
[0119]    650
[0120]    682
[0121]    686
[0122]    693
[0123]    696
[0124]    709
[0125]    715
[0126]    745
[0127]    747
[0128]    750
[0129]    751
[0130]    753
[0131]    760
[0132]    763
[0133]    764
[0134]    772
[0135]    776
[0136]    779
[0137]    791
[0138]    794
[0139]    795
[0140]    800
[0141]    799
[0142]    808
[0143]    814
[0144]    825
[0145]    826
[0146]    831
[0147]    830
[0148]    837
[0149]    853
[0150]    854
[0151]    863
[0152]    872
[0153]    873
[0154]    881
[0155]    885
[0156]    895
[0157]    896
[0158]    897
[0159]    895
[0160]    905
[0161]    909
[0162]    912
[0163]    916
[0164]    921
[0165]    919
[0166]    927
[0167]    929
[0168]    935
[0169]    936
[0170]    937
[0171]    948
[0172]    947
[0173]    948
[0174]    922
[0175]    926
[0176]    932
[0177]    931
[0178]    938
[0179]    958
[0180]    975
[0181]    977
[0182]    982
[0183]    985
[0184]    986
[0185]    987
[0186]    988
[0187]    1007
[0188]    1005
[0189]    1007
[0190]    1008
[0191]    1010
[0192]    1013
[0193]    1015
[0194]    1016
[0195]    1019
[0196]    1025
[0197]    1026
[0198]    1027
[0199]    1029
[0200]    1039
[0201]    1047
[0202]    1054
[0203]    1055
[0204]    1063
[0205]    1066
[0206]    1087
[0207]    1095
[0208]    1096
[0209]    1097
[0210]    1093
[0211]    1114
[0212]    1123
[0213]    1131
[0214]    1137
[0215]    1142
[0216]    1140
[0217]    1154
[0218]    1157
[0219]    1158
[0220]    1159
[0221]    1160
[0222]    1170
[0223]    1174
[0224]    1182
[0225]    1184
[0226]    1191
[0227]    1200
[0228]    1211
[0229]    1214
[0230]    1231
[0231]    1241
[0232]    1250
[0233]    1246
[0

 ____________________________________________
< You are taking yourself far too seriously. >
 --------------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.