aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/parse.h
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>2000-09-12 22:23:59 +0000
committerTom Tromey <tromey@gcc.gnu.org>2000-09-12 22:23:59 +0000
commitd19cbcb5e3dd83e2628d25d2cd23892a4cac83b0 (patch)
tree21cc6935b87686835780712e1d9a7d64eae418d0 /gcc/java/parse.h
parentee17a29049f330ff40a486e56826468a223323c2 (diff)
downloadgcc-d19cbcb5e3dd83e2628d25d2cd23892a4cac83b0.zip
gcc-d19cbcb5e3dd83e2628d25d2cd23892a4cac83b0.tar.gz
gcc-d19cbcb5e3dd83e2628d25d2cd23892a4cac83b0.tar.bz2
re GNATS gcj/33 (gcj mangles composed characters)
Fix for PR gcj/33: * jv-scan.c (help): Document --encoding. (options): Added `encoding' entry. (OPT_ENCODING): New define. (main): Handle --encoding. Include <langinfo.h> if nl_langinfo exists. * lang-options.h: Document --classpath, --CLASSPATH, --main, and --encoding. * jcf-parse.c Include <langinfo.h> if we have nl_langinfo. (parse_source_file): Correctly call java_init_lex. Added `finput' argument. Use nl_langinfo to determine default encoding. * java-tree.h (current_encoding): Declare. * parse.y (java_parser_context_restore_global): Don't restore `finput'. (java_parser_context_save_global): Don't set `finput' field. (java_pop_parser_context): Don't restore `finput'. Free old lexer if required. * lang.c (current_encoding): New global. (lang_decode_option): Recognize `-fencoding='. (finish_parse): Don't close finput. * parse.h (struct parser_ctxt): Removed `finput' and `unget_utf8_value' fields. Added `lexer' field. (java_init_lex): Fixed declaration. * lex.c (java_new_lexer): New function. (java_destroy_lexer): Likewise. (java_read_char): Added `lex' argument. Handle iconv case. (java_read_unicode): Added `lex' argument. Count backslashes in lexer structure. (java_init_lex): Added `finput' and `encoding' arguments. Set `lexer' field in ctxp. (BAD_UTF8_VALUE): Removed. (java_lex): Handle seeing UEOF in the middle of a string literal. * lex.h: Include <iconv.h> if HAVE_ICONV defined. (java_lexer): New structure. (UNGETC): Removed. (GETC): Removed. (DEFAULT_ENCODING): New define. (java_destroy_lexer): Declare. From-SVN: r36377
Diffstat (limited to 'gcc/java/parse.h')
-rw-r--r--gcc/java/parse.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/java/parse.h b/gcc/java/parse.h
index 8071237..b1b0e8e 100644
--- a/gcc/java/parse.h
+++ b/gcc/java/parse.h
@@ -728,13 +728,12 @@ typedef struct _jdeplist {
struct parser_ctxt {
const char *filename; /* Current filename */
- FILE *finput; /* Current file input stream */
struct parser_ctxt *next;
+ java_lexer *lexer; /* Current lexer state */
char marker_begining; /* Marker. Should be a sub-struct */
struct java_line *p_line, *c_line; /* Previous and current line */
java_lc elc; /* Error's line column info */
- unicode_t unget_utf8_value; /* An unget utf8 value */
int ccb_indent; /* Keep track of {} indent, lexer */
int first_ccb_indent1; /* First { at ident level 1 */
int last_ccb_indent1; /* Last } at ident level 1 */
@@ -928,7 +927,7 @@ extern void reset_report PARAMS ((void));
/* Always in use, no matter what you compile */
void java_push_parser_context PARAMS ((void));
void java_pop_parser_context PARAMS ((int));
-void java_init_lex PARAMS ((void));
+void java_init_lex PARAMS ((FILE *, const char *));
extern void java_parser_context_save_global PARAMS ((void));
extern void java_parser_context_restore_global PARAMS ((void));
int yyparse PARAMS ((void));