tools/JavaSourcePartitionerTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 19 Jan 2013 23:19:12 +0000
branchrefactoring-vmdata
changeset 1985 7c5a14d663ba
parent 1947 dbebba5f7d70
child 2069 75d40b7b986f
permissions -rw-r--r--
Temporary commit. JavaNativeMethod refactored to use new-style native methods. Java VM does not boot at this point.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1947
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:libjava/tools' }"
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
PPCompositeParserTest subclass:#JavaSourcePartitionerTests
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
	instanceVariableNames:'partitioner'
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'Languages-Java-Tests-Parser'
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
!JavaSourcePartitionerTests methodsFor:'accessing'!
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
parserClass
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
        ^ JavaSourcePartitioner
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    "Modified: / 11-01-2013 / 12:18:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
! !
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
!JavaSourcePartitionerTests methodsFor:'parsing'!
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
parse: aString rule: aSymbol
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
        | production |
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
        partitioner := production := self parserInstance.
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
        aSymbol = #start
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
                ifFalse: [ production := production productionAt: aSymbol ].
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
        result :=production parse: (JavaScanner for: aString).
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
        self
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
                deny: result isPetitFailure
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
                description: 'Unable to parse ' , aString printString
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
                resumable: true.
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
        ^ result
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    "Created: / 11-01-2013 / 12:21:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
! !
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
!JavaSourcePartitionerTests methodsFor:'tests'!
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
test_01
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    self parse: '
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
class X {
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    public int foo() {
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
        return 10;
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    }
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
}
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    '
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    "Created: / 11-01-2013 / 12:16:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
! !
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
!JavaSourcePartitionerTests class methodsFor:'documentation'!
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
version_HG
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    ^ '$Changeset: <not expanded> $'
dbebba5f7d70 Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
! !