aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/jcf-parse.c
diff options
context:
space:
mode:
authorAnthony Green <green@gcc.gnu.org>2001-09-06 22:22:44 +0000
committerAnthony Green <green@gcc.gnu.org>2001-09-06 22:22:44 +0000
commit7be5b0e5a440de60b0ab8dfdac1f44e2cbf63bba (patch)
tree37aff30da6021cca7b3d351d0edb6a2570cbf393 /gcc/java/jcf-parse.c
parent7d8be4dab0814a35eb8150722dec6626e7f7162e (diff)
downloadgcc-7be5b0e5a440de60b0ab8dfdac1f44e2cbf63bba.zip
gcc-7be5b0e5a440de60b0ab8dfdac1f44e2cbf63bba.tar.gz
gcc-7be5b0e5a440de60b0ab8dfdac1f44e2cbf63bba.tar.bz2
class.c (O_BINARY): Define if necessary.
* class.c (O_BINARY): Define if necessary. (registerResource_libfunc): Declare. (init_class_processing): Initilize registerResource_libfunc. (compile_resource_file): New function. * java-tree.h (resource_name): Declare. (compile_resource_file): Declare. * jcf-parse.c (yyparse): Handle compiling java resource files. * lang.c (java_decode_option): Handle -fcompile-resource option. * jvspec.c (lang_specific_driver): Handle -R flag for compiling resource files. * gcj.texi (Code Generation): Add documentation for -R flag. From-SVN: r45448
Diffstat (limited to 'gcc/java/jcf-parse.c')
-rw-r--r--gcc/java/jcf-parse.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c
index 1247ece..75e0a23 100644
--- a/gcc/java/jcf-parse.c
+++ b/gcc/java/jcf-parse.c
@@ -36,6 +36,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "parse.h"
#include "ggc.h"
#include "debug.h"
+#include "assert.h"
#ifdef HAVE_LOCALE_H
#include <locale.h>
@@ -1084,6 +1085,22 @@ yyparse ()
if (filename_count == 0)
warning ("no input file specified");
+ if (resource_name)
+ {
+ char *resource_filename;
+
+ /* Only one resource file may be compiled at a time. */
+ assert (TREE_CHAIN (current_file_list) == NULL);
+
+ resource_filename = IDENTIFIER_POINTER (TREE_VALUE (current_file_list));
+ compile_resource_file (resource_name, resource_filename);
+
+ java_expand_classes ();
+ if (!java_report_errors ())
+ emit_register_classes ();
+ return 0;
+ }
+
current_jcf = main_jcf;
current_file_list = nreverse (current_file_list);
for (node = current_file_list; node; node = TREE_CHAIN (node))