Merged with PetitCompiler-JanKurs.20150510144201, PetitCompiler-Tests-JanKurs.20150510144201, PetitCompiler-Extras-Tests-JanKurs.20150510144201, PetitCompiler-Benchmarks-JanKurs.20150510144201
Name: PetitCompiler-JanKurs.20150510144201
Author: JanKurs
Time: 10-05-2015, 04:42:29.192 PM
UUID: 58a4786b-1182-4904-8b44-a13d3918f244
Name: PetitCompiler-Tests-JanKurs.20150510144201
Author: JanKurs
Time: 10-05-2015, 04:32:12.870 PM
UUID: 2a8fd41a-331b-4dcf-a7a3-752a50ce86e7
Name: PetitCompiler-Extras-Tests-JanKurs.20150510144201
Author: JanKurs
Time: 10-05-2015, 04:59:25.308 PM
UUID: ef43bd1a-be60-4e88-b749-8b635622c969
Name: PetitCompiler-Benchmarks-JanKurs.20150510144201
Author: JanKurs
Time: 10-05-2015, 05:04:54.561 PM
UUID: d8e764fd-016b-46e2-9fc1-17c38c18f0e5
"{ Package: 'stx:goodies/petitparser/compiler/tests/extras' }"
"{ NameSpace: Smalltalk }"
PPJavaLexiconTest subclass:#PPCompiledJavaSyntaxTest
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'PetitCompiler-Extras-Tests-Java'
!
!PPCompiledJavaSyntaxTest class methodsFor:'as yet unclassified'!
resources
^ (OrderedCollection with: PPCompiledJavaResource)
addAll: super resources;
yourself
! !
!PPCompiledJavaSyntaxTest methodsFor:'accessing'!
context
^ PPCContext new
!
parserClass
^ Smalltalk at: #PPCompiledJavaSyntax
!
parserInstanceFor: aSymbol
^ (Smalltalk at: #PPCompiledJavaSyntax) new startSymbol: aSymbol
! !
!PPCompiledJavaSyntaxTest methodsFor:'testing'!
testAdditiveExpression1
self parse: 'true'
rule: #additiveExpression
!
testAdditiveExpression2
self parse: '3 + 5'
rule: #additiveExpression
!
testAdditiveExpression3
self parse: '4 + 8 - 2 + 9'
rule: #additiveExpression
!
testAndExpression1
self parse: 'true'
rule: #andExpression
!
testBlock1
self parse: '{ }'
rule: #block
!
testBlock2
self
parse:
'{
System.out.println("Hello World!!");
System.out.println("Hello World!!");
}'
rule: #block
!
testCompilationUnit1
self parse: 'package foo;
public class CU1 {}'
rule: #compilationUnit
!
testCompilationUnit2
self parse: 'package foo;
import foo.Bar;
public class CU2 {
}'
rule: #compilationUnit
!
testCompilationUnit3
self parse: 'class myfirstjavaprog
{
public static void main(String args[])
{
System.out.println("Hello World!!");
}
}'
rule: #compilationUnit
!
testCompilationUnit4
self parse: '
public class OddEven {
private int input;
public static void main(String[] args) {
OddEven number = new OddEven();
number.showDialog(); }
public void showDialog() {
try {
input = Integer.parseInt(JOptionPane.showInputDialog("Please Enter A Number"));
calculate();
} catch (NumberFormatException e) {
System.err.println("ERROR: Invalid input. Please type in a numerical value.");
}
}
private void calculate() {
if (input % 2 == 0) {
System.out.println("Even");
} else {
System.out.println("Odd");
}
}
}'
rule: #compilationUnit
!
testCompilationUnit5
self parse: 'class myfirstjavaprog
{
public myfirstjavaprog() {
}
public static void main(String args[])
{
System.out.println("Hello World!!");
}
}'
rule: #compilationUnit
!
testConditionalAndExpression1
self parse: 'true'
rule: #conditionalAndExpression
!
testConditionalOrExpression1
self parse: 'true'
rule: #conditionalOrExpression
!
testEqualityExpression1
self
parse: 'true'
rule: #equalityExpression
!
testExclusiveOrExpression1
self parse: 'true'
rule: #exclusiveOrExpression
!
testExpression1
self parse: '1 + 2'
rule: #expression
!
testExpression2
self parse: 'true'
rule: #expression
!
testExpression3
self parse: 'a.method()'
rule: #expression
!
testExpression4
self parse: 'a'
rule: #expression
!
testExpression5
self parse: 'a += 5'
rule: #expression
!
testFormalParameters1
self
parse: '
(String s, Object parameterType)'
rule: #formalParameters
!
testFormalParameters2
self
parse: '
(Object ... parameterType)'
rule: #formalParameters
!
testFormalParameters3
self
parse: '(String name, Class<?>... parameterTypes)'
rule: #formalParameters
!
testFormalParameters4
self
parse: '(int one, int two, int three, int four)'
rule: #formalParameters
!
testFormalParameters5
self
parse: '()'
rule: #formalParameters
!
testIdentifier
self parse: 'method'
rule: #identifier
!
testIfStatement1
self parse: 'if (true) {}'
rule: #ifStatement
!
testIfStatement2
self parse: 'if (true) {} else {}'
rule: #ifStatement
!
testIfStatement3
self parse: '
if (true)
{int a = 0; a = 1;}
else
{return false;}'
rule: #ifStatement
!
testIfStatement4
self parse: 'if (true) a = 0;'
rule: #ifStatement
!
testIfStatement5
self parse: 'if (a < 4) {}'
rule: #ifStatement
!
testImportDeclaration1
self parse: 'import foo.Top;'
rule: #importDeclaration
!
testImportDeclaration2
self parse: 'import foo.Top2.*;'
rule: #importDeclaration
!
testInclusiveOrExpression1
self parse: 'true'
rule: #inclusiveOrExpression
!
testInstanceofExpression1
self
parse: 'true'
rule: #instanceofExpression
!
testJavaToken
self parse: 'false' rule: #literal.
self assert: (result isKindOf: PPJavaToken).
self assert: (result inputValue = 'false').
!
testLocalVariableDeclaration1
self parse: 'Type name'
rule: #localVariableDeclaration
!
testLocalVariableDeclaration2
self parse: 'Type name = value, name2'
rule: #localVariableDeclaration
!
testLocalVariableDeclarationStatement1
self parse: 'int i = 5;'
rule: #localVariableDeclarationStatement
!
testLocalVariableDeclarationStatement2
self parse: 'int i, j = 6;'
rule: #localVariableDeclarationStatement
!
testLocalVariableDeclarationStatement3
self parse: 'Srting str, in, g;'
rule: #localVariableDeclarationStatement
!
testMethodDeclaration3
self
parse: '
public void getMethod(String s, Object ... parameterType)
{
}'
rule: #methodDeclaration
!
testMethodDeclaration4
self
parse: '
public void getMethod(String s, int o)
{
}'
rule: #methodDeclaration
!
testMultiplicativeExpression1
self parse: 'true'
rule: #multiplicativeExpression
!
testMultiplicativeExpression2
self parse: '3 * 5'
rule: #multiplicativeExpression
!
testMultiplicativeExpression3
self parse: '4 * 8 / 2 * 9'
rule: #multiplicativeExpression
!
testNormalParameterDecl1
self parse: 'final int integers[]'
rule: #normalParameterDecl
!
testNormalParameterDecl2
self parse: 'String str'
rule: #normalParameterDecl
!
testPackageDeclaration
self
parse: 'package java.util;'
rule: #packageDeclaration
!
testPackageDeclaration1
self parse: 'package foo;'
rule: #packageDeclaration
!
testPackageDeclaration2
self parse: 'package foo.Bar;'
rule: #packageDeclaration
!
testPackageDeclaration3
self fail: 'package ;'
rule: #packageDeclaration
!
testPrimary1
self
parse: 'true'
rule: #primary
!
testPrimary2
self
parse: '"Java string"'
rule: #primary
!
testPrimaryWithselectors1
self
parse: 'true'
rule: #primaryWithselectors
!
testQualifiedName1
self parse: 'a.a'
rule: #qualifiedName
!
testRelationalExpression1
self parse: 'true'
rule: #relationalExpression
!
testRelationalExpression2
self parse: '3 > 5'
rule: #relationalExpression
!
testReturnStatement1
self parse: 'return true;'
rule: #returnStatement
!
testReturnStatement2
self parse: 'return;'
rule: #returnStatement
!
testShiftExpression1
self parse: 'true'
rule: #shiftExpression
!
testStatement1
self parse: 'System.out.println("Hello World!!");'
rule: #statement
!
testStatement2
self parse: 'return true;'
rule: #statement
!
testStatement3
self parse: '{}'
rule: #statement
!
testUnaryExpression1
self parse: 'a'
rule: #unaryExpression
!
testUnaryExpression2
self parse: 'true'
rule: #unaryExpression
!
testUnaryExpressionNotPlusMinus1
self
parse: 'true'
rule: #unaryExpressionNotPlusMinus
!
testVariableDeclarator1
self parse: 'var'
rule: #variableDeclarator
!
testVariableDeclarator2
self parse: 'var[][]'
rule: #variableDeclarator
!
testVariableDeclarator3
self parse: 'var = a.methd()'
rule: #variableDeclarator
!
testWhileStatement1
self parse: 'while (true) object.executeMethod();'
rule: #whileStatement
!
testWhileStatement2
self parse: 'while (3>2) {block; of; statements;}'
rule: #whileStatement
! !
!PPCompiledJavaSyntaxTest methodsFor:'testing-classes'!
testClassDeclaration1
self parse: '//comment
class myfirstjavaprog
{
public static void main(String args[])
{
System.out.println("Hello World!!");
}
}'
rule: #classDeclaration
!
testMethodDeclaration1
self
parse: 'public void aMethod() { }'
rule: #methodDeclaration
!
testMethodDeclaration2
self
parse: 'public aMethod() { }'
rule: #methodDeclaration
! !