experiments/JavaCompiler.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 15 Apr 2013 23:55:43 +0200
branchdevelopment
changeset 2515 bcfe9f4dca6b
parent 2513 6669c7947f72
child 2578 fc6186a4961f
permissions -rw-r--r--
Improvements in JavaCompiler. During compilation, remember all problems and hilglight them when showing source code (JavaCompilerProblemService). In future the service will also provide a gutter annotations with problem descriptions.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
 Copyright (c) 2010-2011 Jan Vrany, Jan Kurs & Marcel Hlopko,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
                         SWING Research Group, Czech Technical University 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
                         in Prague
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
 Permission is hereby granted, free of charge, to any person
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
 obtaining a copy of this software and associated documentation
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
 files (the 'Software'), to deal in the Software without
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
 restriction, including without limitation the rights to use,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
 copy, modify, merge, publish, distribute, sublicense, and/or sell
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
 copies of the Software, and to permit persons to whom the
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
 Software is furnished to do so, subject to the following
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
 conditions:
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
 The above copyright notice and this permission notice shall be
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
 included in all copies or substantial portions of the Software.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
 OTHER DEALINGS IN THE SOFTWARE.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
"{ Package: 'stx:libjava/experiments' }"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
Object subclass:#JavaCompiler
2479
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
    30
	instanceVariableNames:'analyzer className imports packageName sourceCode sourceDir
2481
7281d4922170 Pass a class loader to ECJ's CompilerAdapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2479
diff changeset
    31
		requestor classloader'
2515
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
    32
	classVariableNames:'Problems'
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
	poolDictionaries:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
	category:'Languages-Java-Support-Compiling'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
JavaParserII subclass:#ClassSourceAnalyzer
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
	instanceVariableNames:'source package imports name terminator'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
	classVariableNames:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
	poolDictionaries:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
	privateIn:JavaCompiler
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
!JavaCompiler class methodsFor:'documentation'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
copyright
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
 Copyright (c) 2010-2011 Jan Vrany, Jan Kurs & Marcel Hlopko,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
                         SWING Research Group, Czech Technical University 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
                         in Prague
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
 Permission is hereby granted, free of charge, to any person
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
 obtaining a copy of this software and associated documentation
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
 files (the 'Software'), to deal in the Software without
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
 restriction, including without limitation the rights to use,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
 copy, modify, merge, publish, distribute, sublicense, and/or sell
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
 copies of the Software, and to permit persons to whom the
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
 Software is furnished to do so, subject to the following
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
 conditions:
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
 The above copyright notice and this permission notice shall be
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
 included in all copies or substantial portions of the Software.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
 OTHER DEALINGS IN THE SOFTWARE.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
documentation
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
"
2512
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
    78
    An facade to Java compiler to compile Java classed from
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    source (given as string).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
2512
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
    81
    Internally, it uses ECJ. See stx.libjava.compiler.ecj.CompilerAdapter.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    [author:]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
        Jan Vrany <jan.vrany@fit.cvut.cz>
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
        Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
    [instance variables:]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    [class variables:]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    [see also:]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
history
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    "Created: #dotJavaPathname / 13-12-2012 / 00:02:03 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
2515
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   101
!JavaCompiler class methodsFor:'initialization'!
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   102
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   103
initialize
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   104
    "Invoked at system start or when the class is dynamically loaded."
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   105
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   106
    "/ please change as required (and remove this comment)
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   107
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   108
    Problems := WeakIdentityDictionary new.
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   109
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   110
    "Modified: / 15-04-2013 / 21:40:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   111
! !
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   112
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
!JavaCompiler class methodsFor:'instance creation'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
new
2512
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   116
    ^self basicNew initialize
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    "Created: / 15-12-2012 / 16:48:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2512
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   119
    "Modified: / 15-04-2013 / 20:43:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
newAnalyzer
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
    ^ClassSourceAnalyzer new
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
    "Created: / 15-12-2012 / 16:58:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
2515
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   128
!JavaCompiler class methodsFor:'accessing'!
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   129
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   130
problems
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   131
    ^Problems
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   132
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   133
    "Created: / 15-04-2013 / 21:39:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   134
!
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   135
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   136
problemsForClass: aClass
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   137
    ^Problems at: aClass ifAbsent:[#()].
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   138
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   139
    "Created: / 15-04-2013 / 22:07:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   140
! !
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   141
2479
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   142
!JavaCompiler class methodsFor:'compiler interface'!
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   143
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   144
compile: source
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   145
    "Compiles a new Groovy class given the source code"
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   146
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   147
    ^self new compile: source.
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   148
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   149
    "Created: / 27-02-2012 / 23:27:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   150
!
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   151
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   152
compile: source forClass: class inCategory: category notifying: requestor install: doInstall
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   153
    "We allways compile whole class"
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   154
    ^self compile: source register: true notifying: requestor
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   155
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   156
    "Created: / 21-02-2012 / 11:10:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   157
    "Modified: / 03-04-2013 / 00:11:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   158
!
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   159
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   160
compile:aString forClass:aClass inCategory:cat notifying:requestor
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   161
                 install:install skipIfSame:skipIfSame silent:silent
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
2479
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   163
    "HACK.
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   164
     Problem:
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   165
     SmalltalkChunkFileReader always uses class's compiler to compile source. 
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   166
     However, when filing in Smalltalk extensions to Java classes, a Smalltalk 
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   167
     code is passed to me.
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   168
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   169
     See ClassCategoryReader>>fileInFrom:notifying:passChunk:single:silent:
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   170
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   171
     Workaround:
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   172
     Detect such a situation and compile using Smalltalk compiler...bad, I know.
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   173
     Better to move logic from Stream>>fileIn into SmalltalkChunkSourceFileReader.
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   174
     "
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   175
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   176
    (requestor isKindOf: SourceFileLoader) ifTrue:[
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   177
        ^Compiler compile:aString forClass:aClass inCategory:cat notifying:requestor
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   178
                 install:install skipIfSame:skipIfSame silent:silent
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   179
    ].
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   180
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   181
    self breakPoint:#jv.
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   182
    self error: 'Not (yet) supported'
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   183
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   184
    "Created: / 07-09-2012 / 10:35:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   185
!
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
2479
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   187
compile: source register: register notifying: requestor
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   188
    "Called when a class is accepted"
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   189
    | classes |
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
2479
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   191
    classes := self new
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   192
                requestor: requestor;
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   193
                compile: source.
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   194
    register ifTrue:[
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   195
        JavaVM registry registerClasses: classes.
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   196
    ].
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   197
    ^classes first.
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   198
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   199
    "Created: / 03-04-2013 / 00:10:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   200
!
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   201
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   202
evaluate: source notifying: requestor compile: doCompile
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   203
    "Called when a class is accepted"
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   204
    ^self compile: source register: true notifying: requestor
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
2479
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   206
    "Created: / 04-04-2012 / 10:07:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   207
    "Modified: / 03-04-2013 / 00:11:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   208
! !
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   209
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   210
!JavaCompiler methodsFor:'accessing'!
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   211
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   212
requestor
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   213
    ^ requestor
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   214
!
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
2512
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   216
requestor:anObject
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   217
    requestor := anObject.
2479
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   218
! !
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   219
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   220
!JavaCompiler methodsFor:'compiler interface'!
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   221
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   222
compile:source in: class notifying: requestor ifFail: block
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   223
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   224
    requestor class == SourceFileLoader ifTrue:[
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   225
        ^Compiler compile:source in: class notifying: requestor ifFail: block
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   226
    ].
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   227
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   228
    self error:'Not yet supported'.
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   229
76c5d94e3d4a JavaCompiler made API-compatible with ByteCodeCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2476
diff changeset
   230
    "Created: / 04-09-2012 / 23:56:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
!JavaCompiler methodsFor:'compiling'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
compile:source
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
    "Compiles a java class in given source code (passed as String).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
     Return an array of JavaClass which are not yet registered in Java 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
     class registry nor initialiized.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
     To make it accessible for Java code, caller must register returned
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
     classes himself.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
     Upon error, throws an exception"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
2515
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   246
    | javac classfiles classes problems |
2512
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   247
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   248
    analyzer := self class newAnalyzer.
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   249
    analyzer analyze: source.
2513
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   250
    analyzer fullName isNil ifTrue:[
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   251
        self error:'Syntax error - cannot determine class name'.
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   252
        ^self.
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   253
    ].
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   254
2512
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   255
    classloader isNil ifTrue:[
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   256
        classloader := JavaClassReader classLoaderQuerySignal query.
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   257
        classloader isNil ifTrue:[
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   258
            classloader := JavaVM systemClassLoader.
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   259
        ]
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   260
    ].
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   261
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   262
    javac := (Java classForName:'stx.libjava.tools.compiler.ecj.CompilerAdapter') new: 
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   263
               classloader.
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   264
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   265
    javac compile: analyzer fullName source: source.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
2512
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   267
    "javac getResult hasErrors"
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   268
    javac getClassFiles size == 0 ifTrue:[
2513
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   269
        ^self error:'Compilation failed - nothing compiled'
2512
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   270
    ].
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   271
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   272
    classfiles := javac getClassFiles.
2515
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   273
    classes := classfiles collect:[:each|
2512
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   274
        (JavaClassReader readStream: each getBytes readStream)
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   275
            classLoader: classloader;
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   276
            setSource: source;
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   277
            setClassfileBytes: each getBytes;
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   278
            yourself].
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   279
2515
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   280
    problems := javac getResult getProblems.
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   281
    problems notEmptyOrNil ifTrue:[
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   282
        classes do:[:each|
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   283
            Problems at: each put: problems
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   284
        ]
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   285
    ].
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   286
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   287
    ^classes.
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   288
2512
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   289
    "Created: / 15-12-2012 / 23:04:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f2cbd771fc7b Removed Javac and JavacExternal implementation of JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2486
diff changeset
   290
    "Modified: / 16-12-2012 / 15:36:16 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
2515
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   291
    "Modified: / 15-04-2013 / 21:50:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
!JavaCompiler::ClassSourceAnalyzer class methodsFor:'accessing'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
ignoredNames
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
    ^super ignoredNames , self instVarNames
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
    "Created: / 15-12-2012 / 17:17:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2475
27f0940ec023 Initial implementation of ECJ based JavaCompiler,
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   300
    "Modified: / 29-03-2013 / 23:08:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
!JavaCompiler::ClassSourceAnalyzer class methodsFor:'documentation'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
copyright
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
 Copyright (c) 2010-2011 Jan Vrany, Jan Kurs & Marcel Hlopko,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
                         SWING Research Group, Czech Technical University 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
                         in Prague
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
 Permission is hereby granted, free of charge, to any person
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
 obtaining a copy of this software and associated documentation
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
 files (the 'Software'), to deal in the Software without
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
 restriction, including without limitation the rights to use,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
 copy, modify, merge, publish, distribute, sublicense, and/or sell
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
 copies of the Software, and to permit persons to whom the
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
 Software is furnished to do so, subject to the following
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
 conditions:
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
 The above copyright notice and this permission notice shall be
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
 included in all copies or substantial portions of the Software.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
 OTHER DEALINGS IN THE SOFTWARE.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
history
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
    "Created: #imports / 08-12-2012 / 20:01:41 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
    "Modified: #imports / 09-12-2012 / 09:21:09 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
version_SVN
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
    ^ '§Id::                                                                                                                        §'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   343
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   345
!JavaCompiler::ClassSourceAnalyzer class methodsFor:'instance creation'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   346
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   347
analyze: javaSourceCode
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   348
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   349
    ^ self new analyze: javaSourceCode.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   350
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   351
    "Created: / 08-12-2012 / 18:47:26 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   352
    "Modified (format): / 15-12-2012 / 16:59:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   353
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   354
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   355
new
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   356
    ^self newStartingAt: #compilationUnit
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   357
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   358
    "Created: / 15-12-2012 / 17:15:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   359
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   360
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   361
!JavaCompiler::ClassSourceAnalyzer methodsFor:'accessing'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   362
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
className
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   364
    <resource: #obsolete>
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   365
    ^ name
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   366
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   367
    "Created: / 08-12-2012 / 18:53:53 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   368
    "Modified: / 15-12-2012 / 17:04:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   369
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   370
2475
27f0940ec023 Initial implementation of ECJ based JavaCompiler,
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   371
fullName
27f0940ec023 Initial implementation of ECJ based JavaCompiler,
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   372
    ^package isNil 
27f0940ec023 Initial implementation of ECJ based JavaCompiler,
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   373
        ifTrue:[name]
27f0940ec023 Initial implementation of ECJ based JavaCompiler,
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   374
        ifFalse:[package , '.' , name]
27f0940ec023 Initial implementation of ECJ based JavaCompiler,
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   375
27f0940ec023 Initial implementation of ECJ based JavaCompiler,
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   376
    "Created: / 29-03-2013 / 23:09:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
27f0940ec023 Initial implementation of ECJ based JavaCompiler,
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   377
!
27f0940ec023 Initial implementation of ECJ based JavaCompiler,
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   378
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
imports
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
    ^imports ? #()
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   382
    "Created: / 08-12-2012 / 20:01:41 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   383
    "Modified: / 09-12-2012 / 09:21:09 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   384
    "Modified: / 15-12-2012 / 17:20:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   385
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   386
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   387
name
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   388
    ^ name
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   389
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   390
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   391
package
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   392
    ^ package
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   393
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   394
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   395
packageName
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   396
    <resource: #obsolete>
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   397
    ^package
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   398
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   399
    "Created: / 08-12-2012 / 18:50:26 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   400
    "Modified: / 15-12-2012 / 17:56:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   401
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   402
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   403
!JavaCompiler::ClassSourceAnalyzer methodsFor:'grammar'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   404
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   405
importDeclaration 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   406
"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   407
    ^ ((self importKW) , (self staticKW) optional , qualifiedNameForImport 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   408
        , (self tokenFor:';')).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   409
        "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   410
    ^ super importDeclaration ==> [:nodes | 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   411
            imports isNil ifTrue:[imports := OrderedCollection new].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   412
            imports add: (nodes at:3) value.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   413
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   414
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   415
    "Created: / 15-12-2012 / 17:28:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   416
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   417
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   418
packageDeclaration 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   419
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   420
"/        ^ (self  packageKW) , qualifiedName , (self tokenFor:';')
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   421
    ^super packageDeclaration ==> [:nodes| package := nodes second ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   422
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   423
    "Created: / 15-12-2012 / 22:44:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   424
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   425
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   426
!JavaCompiler::ClassSourceAnalyzer methodsFor:'grammar-classes'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   427
2513
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   428
typeNameIdentifier
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   429
    "    
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   430
    ^identifier
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   431
    "
2513
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   432
    ^super typeNameIdentifier  ==> [:ident | 
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   433
            name := ident.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   434
            terminator value
2513
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   435
    ]
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   436
2513
6669c7947f72 Bugfix in JavaCompiler - compile even syntactically incorrect code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2512
diff changeset
   437
    "Created: / 15-04-2013 / 21:24:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   438
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   439
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   440
!JavaCompiler::ClassSourceAnalyzer methodsFor:'parsing'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   441
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   442
analyze: aString 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   443
    source := aString.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   444
    terminator := [ ^ self ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   445
    self parse: source.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   446
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   447
    "Created: / 08-12-2012 / 18:48:56 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   448
    "Modified: / 15-12-2012 / 17:04:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   449
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   450
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   451
!JavaCompiler class methodsFor:'documentation'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   452
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   453
version_CVS
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   454
    ^ '$Header: /cvs/stx/stx/libjava/experiments/JavaCompiler.st,v 1.2 2013-02-25 11:15:34 vrany Exp $'
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   455
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   456
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   457
version_HG
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   458
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   459
    ^ '$Changeset: <not expanded> $'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   460
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   461
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   462
version_SVN
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   463
    ^ '§Id::                                                                                                                        §'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   464
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   465
2515
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   466
bcfe9f4dca6b Improvements in JavaCompiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2513
diff changeset
   467
JavaCompiler initialize!