[svn:parrot] r43666 - in branches/gc_encapsulate: compilers/imcc src/gc
whiteknight at svn.parrot.org
whiteknight at svn.parrot.org
Sun Jan 31 14:53:44 UTC 2010
Author: whiteknight
Date: Sun Jan 31 14:53:41 2010
New Revision: 43666
URL: https://trac.parrot.org/parrot/changeset/43666
Log:
copysize was not being set in gc_ms_reallocate_buffer, causing a segfault in memcpy. Fix that so now it is initialized. Fixes segfault. Miniparrot now builds config_lib.pasm properly, but the build fails several steps later with a built Parrot
Modified:
branches/gc_encapsulate/compilers/imcc/imcparser.c
branches/gc_encapsulate/compilers/imcc/imcparser.h
branches/gc_encapsulate/src/gc/gc_ms.c
Modified: branches/gc_encapsulate/compilers/imcc/imcparser.c
==============================================================================
--- branches/gc_encapsulate/compilers/imcc/imcparser.c Sun Jan 31 11:10:14 2010 (r43665)
+++ branches/gc_encapsulate/compilers/imcc/imcparser.c Sun Jan 31 14:53:41 2010 (r43666)
@@ -9,26 +9,27 @@
*/
/* HEADERIZER HFILE: none */
/* HEADERIZER STOP */
-
-/* A Bison parser, made by GNU Bison 2.4.1. */
+/* A Bison parser, made by GNU Bison 2.3. */
/* Skeleton implementation for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
+
+ This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -39,7 +40,7 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
@@ -57,7 +58,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.4.1"
+#define YYBISON_VERSION "2.3"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -65,141 +66,384 @@
/* Pure parsers. */
#define YYPURE 1
-/* Push parsers. */
-#define YYPUSH 0
-
-/* Pull parsers. */
-#define YYPULL 1
-
/* Using locations. */
#define YYLSP_NEEDED 0
-/* Copy the first part of user declarations. */
-
-/* Line 189 of yacc.c */
-#line 1 "compilers/imcc/imcc.y"
-
-/*
- * imcc.y
- *
- * Intermediate Code Compiler for Parrot.
- *
- * Copyright (C) 2002 Melvin Smith <melvin.smith at mindspring.com>
- * Copyright (C) 2002-2009, Parrot Foundation.
- *
- * Grammar of the PIR language parser.
- *
- * $Id$
- *
- */
-
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#define _PARSER
-#define PARSER_MAIN
-#include "imc.h"
-#include "parrot/dynext.h"
-#include "pmc/pmc_callcontext.h"
-#include "pbc.h"
-#include "parser.h"
-#include "optimizer.h"
-
-/* prevent declarations of malloc() and free() in the generated parser. */
-#define YYMALLOC
-#define YYFREE
-
-#ifndef YYENABLE_NLS
-# define YYENABLE_NLS 0
-#endif
-
-#ifndef YYLTYPE_IS_TRIVIAL
-# define YYLTYPE_IS_TRIVIAL 0
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ LOW_PREC = 258,
+ PARAM = 259,
+ HLL = 260,
+ TK_LINE = 261,
+ TK_FILE = 262,
+ GOTO = 263,
+ ARG = 264,
+ IF = 265,
+ UNLESS = 266,
+ PNULL = 267,
+ SET_RETURN = 268,
+ SET_YIELD = 269,
+ ADV_FLAT = 270,
+ ADV_SLURPY = 271,
+ ADV_OPTIONAL = 272,
+ ADV_OPT_FLAG = 273,
+ ADV_NAMED = 274,
+ ADV_ARROW = 275,
+ NEW = 276,
+ ADV_INVOCANT = 277,
+ ADV_CALL_SIG = 278,
+ NAMESPACE = 279,
+ DOT_METHOD = 280,
+ SUB = 281,
+ SYM = 282,
+ LOCAL = 283,
+ LEXICAL = 284,
+ CONST = 285,
+ ANNOTATE = 286,
+ INC = 287,
+ DEC = 288,
+ GLOBAL_CONST = 289,
+ PLUS_ASSIGN = 290,
+ MINUS_ASSIGN = 291,
+ MUL_ASSIGN = 292,
+ DIV_ASSIGN = 293,
+ CONCAT_ASSIGN = 294,
+ BAND_ASSIGN = 295,
+ BOR_ASSIGN = 296,
+ BXOR_ASSIGN = 297,
+ FDIV = 298,
+ FDIV_ASSIGN = 299,
+ MOD_ASSIGN = 300,
+ SHR_ASSIGN = 301,
+ SHL_ASSIGN = 302,
+ SHR_U_ASSIGN = 303,
+ SHIFT_LEFT = 304,
+ SHIFT_RIGHT = 305,
+ INTV = 306,
+ FLOATV = 307,
+ STRINGV = 308,
+ PMCV = 309,
+ LOG_XOR = 310,
+ RELOP_EQ = 311,
+ RELOP_NE = 312,
+ RELOP_GT = 313,
+ RELOP_GTE = 314,
+ RELOP_LT = 315,
+ RELOP_LTE = 316,
+ RESULT = 317,
+ RETURN = 318,
+ TAILCALL = 319,
+ YIELDT = 320,
+ GET_RESULTS = 321,
+ POW = 322,
+ SHIFT_RIGHT_U = 323,
+ LOG_AND = 324,
+ LOG_OR = 325,
+ COMMA = 326,
+ ESUB = 327,
+ DOTDOT = 328,
+ PCC_BEGIN = 329,
+ PCC_END = 330,
+ PCC_CALL = 331,
+ PCC_SUB = 332,
+ PCC_BEGIN_RETURN = 333,
+ PCC_END_RETURN = 334,
+ PCC_BEGIN_YIELD = 335,
+ PCC_END_YIELD = 336,
+ NCI_CALL = 337,
+ METH_CALL = 338,
+ INVOCANT = 339,
+ MAIN = 340,
+ LOAD = 341,
+ INIT = 342,
+ IMMEDIATE = 343,
+ POSTCOMP = 344,
+ METHOD = 345,
+ ANON = 346,
+ OUTER = 347,
+ NEED_LEX = 348,
+ MULTI = 349,
+ VTABLE_METHOD = 350,
+ LOADLIB = 351,
+ SUB_INSTANCE_OF = 352,
+ SUBID = 353,
+ NS_ENTRY = 354,
+ UNIQUE_REG = 355,
+ LABEL = 356,
+ EMIT = 357,
+ EOM = 358,
+ IREG = 359,
+ NREG = 360,
+ SREG = 361,
+ PREG = 362,
+ IDENTIFIER = 363,
+ REG = 364,
+ MACRO = 365,
+ ENDM = 366,
+ STRINGC = 367,
+ INTC = 368,
+ FLOATC = 369,
+ USTRINGC = 370,
+ PARROT_OP = 371,
+ VAR = 372,
+ LINECOMMENT = 373,
+ FILECOMMENT = 374,
+ DOT = 375,
+ CONCAT = 376
+ };
#endif
-
-/* HEADERIZER HFILE: compilers/imcc/imc.h */
-
-/* HEADERIZER BEGIN: static */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-static void add_pcc_named_arg(
- ARGMOD(SymReg *cur_call),
- ARGMOD(SymReg *name),
- ARGMOD(SymReg *value))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*cur_call)
- FUNC_MODIFIES(*name)
- FUNC_MODIFIES(*value);
-
-static void add_pcc_named_arg_var(
- ARGMOD(SymReg *cur_call),
- ARGMOD(SymReg *name),
- ARGMOD(SymReg *value))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*cur_call)
- FUNC_MODIFIES(*name)
- FUNC_MODIFIES(*value);
-
-static void add_pcc_named_param(
- ARGMOD(SymReg *cur_call),
- ARGMOD(SymReg *name),
- ARGMOD(SymReg *value))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*cur_call)
- FUNC_MODIFIES(*name)
- FUNC_MODIFIES(*value);
-
-static void add_pcc_named_result(
- ARGMOD(SymReg *cur_call),
- ARGMOD(SymReg *name),
- ARGMOD(SymReg *value))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*cur_call)
- FUNC_MODIFIES(*name)
- FUNC_MODIFIES(*value);
-
-static void add_pcc_named_return(
- ARGMOD(SymReg *cur_call),
- ARGMOD(SymReg *name),
- ARGMOD(SymReg *value))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*cur_call)
- FUNC_MODIFIES(*name)
- FUNC_MODIFIES(*value);
-
-static void adv_named_set(PARROT_INTERP, ARGIN(const char *name))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-static void adv_named_set_u(PARROT_INTERP, ARGIN(const char *name))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-static void begin_return_or_yield(PARROT_INTERP, int yield)
- __attribute__nonnull__(1);
-
-static void clear_state(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-static void do_loadlib(PARROT_INTERP, ARGIN(const char *lib))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
+/* Tokens. */
+#define LOW_PREC 258
+#define PARAM 259
+#define HLL 260
+#define TK_LINE 261
+#define TK_FILE 262
+#define GOTO 263
+#define ARG 264
+#define IF 265
+#define UNLESS 266
+#define PNULL 267
+#define SET_RETURN 268
+#define SET_YIELD 269
+#define ADV_FLAT 270
+#define ADV_SLURPY 271
+#define ADV_OPTIONAL 272
+#define ADV_OPT_FLAG 273
+#define ADV_NAMED 274
+#define ADV_ARROW 275
+#define NEW 276
+#define ADV_INVOCANT 277
+#define ADV_CALL_SIG 278
+#define NAMESPACE 279
+#define DOT_METHOD 280
+#define SUB 281
+#define SYM 282
+#define LOCAL 283
+#define LEXICAL 284
+#define CONST 285
+#define ANNOTATE 286
+#define INC 287
+#define DEC 288
+#define GLOBAL_CONST 289
+#define PLUS_ASSIGN 290
+#define MINUS_ASSIGN 291
+#define MUL_ASSIGN 292
+#define DIV_ASSIGN 293
+#define CONCAT_ASSIGN 294
+#define BAND_ASSIGN 295
+#define BOR_ASSIGN 296
+#define BXOR_ASSIGN 297
+#define FDIV 298
+#define FDIV_ASSIGN 299
+#define MOD_ASSIGN 300
+#define SHR_ASSIGN 301
+#define SHL_ASSIGN 302
+#define SHR_U_ASSIGN 303
+#define SHIFT_LEFT 304
+#define SHIFT_RIGHT 305
+#define INTV 306
+#define FLOATV 307
+#define STRINGV 308
+#define PMCV 309
+#define LOG_XOR 310
+#define RELOP_EQ 311
+#define RELOP_NE 312
+#define RELOP_GT 313
+#define RELOP_GTE 314
+#define RELOP_LT 315
+#define RELOP_LTE 316
+#define RESULT 317
+#define RETURN 318
+#define TAILCALL 319
+#define YIELDT 320
+#define GET_RESULTS 321
+#define POW 322
+#define SHIFT_RIGHT_U 323
+#define LOG_AND 324
+#define LOG_OR 325
+#define COMMA 326
+#define ESUB 327
+#define DOTDOT 328
+#define PCC_BEGIN 329
+#define PCC_END 330
+#define PCC_CALL 331
+#define PCC_SUB 332
+#define PCC_BEGIN_RETURN 333
+#define PCC_END_RETURN 334
+#define PCC_BEGIN_YIELD 335
+#define PCC_END_YIELD 336
+#define NCI_CALL 337
+#define METH_CALL 338
+#define INVOCANT 339
+#define MAIN 340
+#define LOAD 341
+#define INIT 342
+#define IMMEDIATE 343
+#define POSTCOMP 344
+#define METHOD 345
+#define ANON 346
+#define OUTER 347
+#define NEED_LEX 348
+#define MULTI 349
+#define VTABLE_METHOD 350
+#define LOADLIB 351
+#define SUB_INSTANCE_OF 352
+#define SUBID 353
+#define NS_ENTRY 354
+#define UNIQUE_REG 355
+#define LABEL 356
+#define EMIT 357
+#define EOM 358
+#define IREG 359
+#define NREG 360
+#define SREG 361
+#define PREG 362
+#define IDENTIFIER 363
+#define REG 364
+#define MACRO 365
+#define ENDM 366
+#define STRINGC 367
+#define INTC 368
+#define FLOATC 369
+#define USTRINGC 370
+#define PARROT_OP 371
+#define VAR 372
+#define LINECOMMENT 373
+#define FILECOMMENT 374
+#define DOT 375
+#define CONCAT 376
+
+
+
+
+/* Copy the first part of user declarations. */
+#line 1 "compilers/imcc/imcc.y"
+
+/*
+ * imcc.y
+ *
+ * Intermediate Code Compiler for Parrot.
+ *
+ * Copyright (C) 2002 Melvin Smith <melvin.smith at mindspring.com>
+ * Copyright (C) 2002-2009, Parrot Foundation.
+ *
+ * Grammar of the PIR language parser.
+ *
+ * $Id$
+ *
+ */
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define _PARSER
+#define PARSER_MAIN
+#include "imc.h"
+#include "parrot/dynext.h"
+#include "pmc/pmc_callcontext.h"
+#include "pbc.h"
+#include "parser.h"
+#include "optimizer.h"
+
+/* prevent declarations of malloc() and free() in the generated parser. */
+#define YYMALLOC
+#define YYFREE
+
+#ifndef YYENABLE_NLS
+# define YYENABLE_NLS 0
+#endif
+
+#ifndef YYLTYPE_IS_TRIVIAL
+# define YYLTYPE_IS_TRIVIAL 0
+#endif
+
+/* HEADERIZER HFILE: compilers/imcc/imc.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void add_pcc_named_arg(
+ ARGMOD(SymReg *cur_call),
+ ARGMOD(SymReg *name),
+ ARGMOD(SymReg *value))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*cur_call)
+ FUNC_MODIFIES(*name)
+ FUNC_MODIFIES(*value);
+
+static void add_pcc_named_arg_var(
+ ARGMOD(SymReg *cur_call),
+ ARGMOD(SymReg *name),
+ ARGMOD(SymReg *value))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*cur_call)
+ FUNC_MODIFIES(*name)
+ FUNC_MODIFIES(*value);
+
+static void add_pcc_named_param(
+ ARGMOD(SymReg *cur_call),
+ ARGMOD(SymReg *name),
+ ARGMOD(SymReg *value))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*cur_call)
+ FUNC_MODIFIES(*name)
+ FUNC_MODIFIES(*value);
+
+static void add_pcc_named_result(
+ ARGMOD(SymReg *cur_call),
+ ARGMOD(SymReg *name),
+ ARGMOD(SymReg *value))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*cur_call)
+ FUNC_MODIFIES(*name)
+ FUNC_MODIFIES(*value);
+
+static void add_pcc_named_return(
+ ARGMOD(SymReg *cur_call),
+ ARGMOD(SymReg *name),
+ ARGMOD(SymReg *value))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*cur_call)
+ FUNC_MODIFIES(*name)
+ FUNC_MODIFIES(*value);
+
+static void adv_named_set(PARROT_INTERP, ARGIN(const char *name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void adv_named_set_u(PARROT_INTERP, ARGIN(const char *name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void begin_return_or_yield(PARROT_INTERP, int yield)
+ __attribute__nonnull__(1);
+
+static void clear_state(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+static void do_loadlib(PARROT_INTERP, ARGIN(const char *lib))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
static Instruction* func_ins(PARROT_INTERP,
ARGMOD(IMC_Unit *unit),
ARGIN(SymReg *lhs),
@@ -986,460 +1230,201 @@
=cut
-*/
-
-static void
-add_pcc_named_arg(ARGMOD(SymReg *cur_call),
- ARGMOD(SymReg *name),
- ARGMOD(SymReg *value))
-{
- ASSERT_ARGS(add_pcc_named_arg)
- name->type |= VT_NAMED;
-
- add_pcc_arg(cur_call, name);
- add_pcc_arg(cur_call, value);
-}
-
-/*
-
-=item C<static void add_pcc_named_arg_var(SymReg *cur_call, SymReg *name, SymReg
-*value)>
-
-=cut
-
-*/
-
-static void
-add_pcc_named_arg_var(ARGMOD(SymReg *cur_call),
- ARGMOD(SymReg *name), ARGMOD(SymReg *value))
-{
- ASSERT_ARGS(add_pcc_named_arg_var)
- name->type |= VT_NAMED;
- add_pcc_arg(cur_call, name);
- add_pcc_arg(cur_call, value);
-}
-
-/*
-
-=item C<static void add_pcc_named_result(SymReg *cur_call, SymReg *name, SymReg
-*value)>
-
-=cut
-
-*/
-
-static void
-add_pcc_named_result(ARGMOD(SymReg *cur_call),
- ARGMOD(SymReg *name),
- ARGMOD(SymReg *value))
-{
- ASSERT_ARGS(add_pcc_named_result)
- name->type |= VT_NAMED;
-
- add_pcc_result(cur_call, name);
- add_pcc_result(cur_call, value);
-}
-
-/*
-
-=item C<static void add_pcc_named_param(SymReg *cur_call, SymReg *name, SymReg
-*value)>
-
-=cut
-
-*/
-
-static void
-add_pcc_named_param(ARGMOD(SymReg *cur_call),
- ARGMOD(SymReg *name),
- ARGMOD(SymReg *value))
-{
- ASSERT_ARGS(add_pcc_named_param)
- name->type |= VT_NAMED;
-
- add_pcc_arg(cur_call, name);
- add_pcc_arg(cur_call, value);
-}
-
-/*
-
-=item C<static void add_pcc_named_return(SymReg *cur_call, SymReg *name, SymReg
-*value)>
-
-=cut
-
-*/
-
-static void
-add_pcc_named_return(ARGMOD(SymReg *cur_call),
- ARGMOD(SymReg *name),
- ARGMOD(SymReg *value))
-{
- ASSERT_ARGS(add_pcc_named_return)
- name->type |= VT_NAMED;
-
- add_pcc_result(cur_call, name);
- add_pcc_result(cur_call, value);
-}
-
-/*
-
-=item C<static void adv_named_set(PARROT_INTERP, const char *name)>
-
-Sets the name of the current named argument.
-
-C<adv_named_set_u> is the Unicode version of this function.
-
-=cut
-
-*/
-
-static void
-adv_named_set(PARROT_INTERP, ARGIN(const char *name))
-{
- ASSERT_ARGS(adv_named_set)
- if (IMCC_INFO(interp)->adv_named_id)
- IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
- "Named parameter with more than one name.\n");
-
- IMCC_INFO(interp)->adv_named_id = mk_const(interp, name, 'S');
-}
-
-static void
-adv_named_set_u(PARROT_INTERP, ARGIN(const char *name))
-{
- ASSERT_ARGS(adv_named_set_u)
- if (IMCC_INFO(interp)->adv_named_id)
- IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
- "Named parameter with more than one name.\n");
-
- IMCC_INFO(interp)->adv_named_id = mk_const(interp, name, 'U');
-}
-
-/*
-
-=item C<static void do_loadlib(PARROT_INTERP, const char *lib)>
-
-=cut
-
-*/
-
-static void
-do_loadlib(PARROT_INTERP, ARGIN(const char *lib))
-{
- ASSERT_ARGS(do_loadlib)
- STRING * const s = Parrot_str_unescape(interp, lib + 1, '"', NULL);
- PMC *ignored = Parrot_load_lib(interp, s, NULL);
- UNUSED(ignored);
- Parrot_register_HLL_lib(interp, s);
-}
-
-/* HEADERIZER STOP */
-
-
-
-/* Line 189 of yacc.c */
-#line 1132 "compilers/imcc/imcparser.c"
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- LOW_PREC = 258,
- PARAM = 259,
- HLL = 260,
- TK_LINE = 261,
- TK_FILE = 262,
- GOTO = 263,
- ARG = 264,
- IF = 265,
- UNLESS = 266,
- PNULL = 267,
- SET_RETURN = 268,
- SET_YIELD = 269,
- ADV_FLAT = 270,
- ADV_SLURPY = 271,
- ADV_OPTIONAL = 272,
- ADV_OPT_FLAG = 273,
- ADV_NAMED = 274,
- ADV_ARROW = 275,
- NEW = 276,
- ADV_INVOCANT = 277,
- ADV_CALL_SIG = 278,
- NAMESPACE = 279,
- DOT_METHOD = 280,
- SUB = 281,
- SYM = 282,
- LOCAL = 283,
- LEXICAL = 284,
- CONST = 285,
- ANNOTATE = 286,
- INC = 287,
- DEC = 288,
- GLOBAL_CONST = 289,
- PLUS_ASSIGN = 290,
- MINUS_ASSIGN = 291,
- MUL_ASSIGN = 292,
- DIV_ASSIGN = 293,
- CONCAT_ASSIGN = 294,
- BAND_ASSIGN = 295,
- BOR_ASSIGN = 296,
- BXOR_ASSIGN = 297,
- FDIV = 298,
- FDIV_ASSIGN = 299,
- MOD_ASSIGN = 300,
- SHR_ASSIGN = 301,
- SHL_ASSIGN = 302,
- SHR_U_ASSIGN = 303,
- SHIFT_LEFT = 304,
- SHIFT_RIGHT = 305,
- INTV = 306,
- FLOATV = 307,
- STRINGV = 308,
- PMCV = 309,
- LOG_XOR = 310,
- RELOP_EQ = 311,
- RELOP_NE = 312,
- RELOP_GT = 313,
- RELOP_GTE = 314,
- RELOP_LT = 315,
- RELOP_LTE = 316,
- RESULT = 317,
- RETURN = 318,
- TAILCALL = 319,
- YIELDT = 320,
- GET_RESULTS = 321,
- POW = 322,
- SHIFT_RIGHT_U = 323,
- LOG_AND = 324,
- LOG_OR = 325,
- COMMA = 326,
- ESUB = 327,
- DOTDOT = 328,
- PCC_BEGIN = 329,
- PCC_END = 330,
- PCC_CALL = 331,
- PCC_SUB = 332,
- PCC_BEGIN_RETURN = 333,
- PCC_END_RETURN = 334,
- PCC_BEGIN_YIELD = 335,
- PCC_END_YIELD = 336,
- NCI_CALL = 337,
- METH_CALL = 338,
- INVOCANT = 339,
- MAIN = 340,
- LOAD = 341,
- INIT = 342,
- IMMEDIATE = 343,
- POSTCOMP = 344,
- METHOD = 345,
- ANON = 346,
- OUTER = 347,
- NEED_LEX = 348,
- MULTI = 349,
- VTABLE_METHOD = 350,
- LOADLIB = 351,
- SUB_INSTANCE_OF = 352,
- SUBID = 353,
- NS_ENTRY = 354,
- UNIQUE_REG = 355,
- LABEL = 356,
- EMIT = 357,
- EOM = 358,
- IREG = 359,
- NREG = 360,
- SREG = 361,
- PREG = 362,
- IDENTIFIER = 363,
- REG = 364,
- MACRO = 365,
- ENDM = 366,
- STRINGC = 367,
- INTC = 368,
- FLOATC = 369,
- USTRINGC = 370,
- PARROT_OP = 371,
- VAR = 372,
- LINECOMMENT = 373,
- FILECOMMENT = 374,
- DOT = 375,
- CONCAT = 376
- };
-#endif
-/* Tokens. */
-#define LOW_PREC 258
-#define PARAM 259
-#define HLL 260
-#define TK_LINE 261
-#define TK_FILE 262
-#define GOTO 263
-#define ARG 264
-#define IF 265
-#define UNLESS 266
-#define PNULL 267
-#define SET_RETURN 268
-#define SET_YIELD 269
-#define ADV_FLAT 270
-#define ADV_SLURPY 271
-#define ADV_OPTIONAL 272
-#define ADV_OPT_FLAG 273
-#define ADV_NAMED 274
-#define ADV_ARROW 275
-#define NEW 276
-#define ADV_INVOCANT 277
-#define ADV_CALL_SIG 278
-#define NAMESPACE 279
-#define DOT_METHOD 280
-#define SUB 281
-#define SYM 282
-#define LOCAL 283
-#define LEXICAL 284
-#define CONST 285
-#define ANNOTATE 286
-#define INC 287
-#define DEC 288
-#define GLOBAL_CONST 289
-#define PLUS_ASSIGN 290
-#define MINUS_ASSIGN 291
-#define MUL_ASSIGN 292
-#define DIV_ASSIGN 293
-#define CONCAT_ASSIGN 294
-#define BAND_ASSIGN 295
-#define BOR_ASSIGN 296
-#define BXOR_ASSIGN 297
-#define FDIV 298
-#define FDIV_ASSIGN 299
-#define MOD_ASSIGN 300
-#define SHR_ASSIGN 301
-#define SHL_ASSIGN 302
-#define SHR_U_ASSIGN 303
-#define SHIFT_LEFT 304
-#define SHIFT_RIGHT 305
-#define INTV 306
-#define FLOATV 307
-#define STRINGV 308
-#define PMCV 309
-#define LOG_XOR 310
-#define RELOP_EQ 311
-#define RELOP_NE 312
-#define RELOP_GT 313
-#define RELOP_GTE 314
-#define RELOP_LT 315
-#define RELOP_LTE 316
-#define RESULT 317
-#define RETURN 318
-#define TAILCALL 319
-#define YIELDT 320
-#define GET_RESULTS 321
-#define POW 322
-#define SHIFT_RIGHT_U 323
-#define LOG_AND 324
-#define LOG_OR 325
-#define COMMA 326
-#define ESUB 327
-#define DOTDOT 328
-#define PCC_BEGIN 329
-#define PCC_END 330
-#define PCC_CALL 331
-#define PCC_SUB 332
-#define PCC_BEGIN_RETURN 333
-#define PCC_END_RETURN 334
-#define PCC_BEGIN_YIELD 335
-#define PCC_END_YIELD 336
-#define NCI_CALL 337
-#define METH_CALL 338
-#define INVOCANT 339
-#define MAIN 340
-#define LOAD 341
-#define INIT 342
-#define IMMEDIATE 343
-#define POSTCOMP 344
-#define METHOD 345
-#define ANON 346
-#define OUTER 347
-#define NEED_LEX 348
-#define MULTI 349
-#define VTABLE_METHOD 350
-#define LOADLIB 351
-#define SUB_INSTANCE_OF 352
-#define SUBID 353
-#define NS_ENTRY 354
-#define UNIQUE_REG 355
-#define LABEL 356
-#define EMIT 357
-#define EOM 358
-#define IREG 359
-#define NREG 360
-#define SREG 361
-#define PREG 362
-#define IDENTIFIER 363
-#define REG 364
-#define MACRO 365
-#define ENDM 366
-#define STRINGC 367
-#define INTC 368
-#define FLOATC 369
-#define USTRINGC 370
-#define PARROT_OP 371
-#define VAR 372
-#define LINECOMMENT 373
-#define FILECOMMENT 374
-#define DOT 375
-#define CONCAT 376
+*/
+static void
+add_pcc_named_arg(ARGMOD(SymReg *cur_call),
+ ARGMOD(SymReg *name),
+ ARGMOD(SymReg *value))
+{
+ ASSERT_ARGS(add_pcc_named_arg)
+ name->type |= VT_NAMED;
+ add_pcc_arg(cur_call, name);
+ add_pcc_arg(cur_call, value);
+}
+/*
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
+=item C<static void add_pcc_named_arg_var(SymReg *cur_call, SymReg *name, SymReg
+*value)>
+
+=cut
+
+*/
+
+static void
+add_pcc_named_arg_var(ARGMOD(SymReg *cur_call),
+ ARGMOD(SymReg *name), ARGMOD(SymReg *value))
{
+ ASSERT_ARGS(add_pcc_named_arg_var)
+ name->type |= VT_NAMED;
+ add_pcc_arg(cur_call, name);
+ add_pcc_arg(cur_call, value);
+}
-/* Line 214 of yacc.c */
-#line 1059 "compilers/imcc/imcc.y"
+/*
+
+=item C<static void add_pcc_named_result(SymReg *cur_call, SymReg *name, SymReg
+*value)>
+
+=cut
+
+*/
+
+static void
+add_pcc_named_result(ARGMOD(SymReg *cur_call),
+ ARGMOD(SymReg *name),
+ ARGMOD(SymReg *value))
+{
+ ASSERT_ARGS(add_pcc_named_result)
+ name->type |= VT_NAMED;
+
+ add_pcc_result(cur_call, name);
+ add_pcc_result(cur_call, value);
+}
+
+/*
+
+=item C<static void add_pcc_named_param(SymReg *cur_call, SymReg *name, SymReg
+*value)>
+
+=cut
+
+*/
+
+static void
+add_pcc_named_param(ARGMOD(SymReg *cur_call),
+ ARGMOD(SymReg *name),
+ ARGMOD(SymReg *value))
+{
+ ASSERT_ARGS(add_pcc_named_param)
+ name->type |= VT_NAMED;
+
+ add_pcc_arg(cur_call, name);
+ add_pcc_arg(cur_call, value);
+}
+
+/*
+
+=item C<static void add_pcc_named_return(SymReg *cur_call, SymReg *name, SymReg
+*value)>
+
+=cut
+
+*/
+
+static void
+add_pcc_named_return(ARGMOD(SymReg *cur_call),
+ ARGMOD(SymReg *name),
+ ARGMOD(SymReg *value))
+{
+ ASSERT_ARGS(add_pcc_named_return)
+ name->type |= VT_NAMED;
+
+ add_pcc_result(cur_call, name);
+ add_pcc_result(cur_call, value);
+}
+
+/*
+
+=item C<static void adv_named_set(PARROT_INTERP, const char *name)>
+
+Sets the name of the current named argument.
+
+C<adv_named_set_u> is the Unicode version of this function.
+
+=cut
+
+*/
+
+static void
+adv_named_set(PARROT_INTERP, ARGIN(const char *name))
+{
+ ASSERT_ARGS(adv_named_set)
+ if (IMCC_INFO(interp)->adv_named_id)
+ IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
+ "Named parameter with more than one name.\n");
+
+ IMCC_INFO(interp)->adv_named_id = mk_const(interp, name, 'S');
+}
+
+static void
+adv_named_set_u(PARROT_INTERP, ARGIN(const char *name))
+{
+ ASSERT_ARGS(adv_named_set_u)
+ if (IMCC_INFO(interp)->adv_named_id)
+ IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
+ "Named parameter with more than one name.\n");
+
+ IMCC_INFO(interp)->adv_named_id = mk_const(interp, name, 'U');
+}
+
+/*
+=item C<static void do_loadlib(PARROT_INTERP, const char *lib)>
+
+=cut
+
+*/
+
+static void
+do_loadlib(PARROT_INTERP, ARGIN(const char *lib))
+{
+ ASSERT_ARGS(do_loadlib)
+ STRING * const s = Parrot_str_unescape(interp, lib + 1, '"', NULL);
+ PMC *ignored = Parrot_load_lib(interp, s, NULL);
+ UNUSED(ignored);
+ Parrot_register_HLL_lib(interp, s);
+}
+
+/* HEADERIZER STOP */
+
+
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 1059 "compilers/imcc/imcc.y"
+{
IdList * idlist;
int t;
char * s;
SymReg * sr;
Instruction *i;
-
-
-
-/* Line 214 of yacc.c */
-#line 1420 "compilers/imcc/imcparser.c"
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
+}
+/* Line 187 of yacc.c. */
+#line 1404 "compilers/imcc/imcparser.c"
+ YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
#endif
+
/* Copy the second part of user declarations. */
-/* Line 264 of yacc.c */
-#line 1432 "compilers/imcc/imcparser.c"
+/* Line 216 of yacc.c. */
+#line 1417 "compilers/imcc/imcparser.c"
#ifdef short
# undef short
@@ -1514,14 +1499,14 @@
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static int
-YYID (int yyi)
+YYID (int i)
#else
static int
-YYID (yyi)
- int yyi;
+YYID (i)
+ int i;
#endif
{
- return yyi;
+ return i;
}
#endif
@@ -1602,9 +1587,9 @@
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- yytype_int16 yyss_alloc;
- YYSTYPE yyvs_alloc;
-};
+ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
/* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@ -1638,12 +1623,12 @@
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
+# define YYSTACK_RELOCATE(Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
- Stack = &yyptr->Stack_alloc; \
+ YYCOPY (&yyptr->Stack, Stack, yysize); \
+ Stack = &yyptr->Stack; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
@@ -1923,31 +1908,30 @@
"EMIT", "EOM", "IREG", "NREG", "SREG", "PREG", "IDENTIFIER", "REG",
"MACRO", "ENDM", "STRINGC", "INTC", "FLOATC", "USTRINGC", "PARROT_OP",
"VAR", "LINECOMMENT", "FILECOMMENT", "DOT", "CONCAT", "'='", "'['",
- "']'", "'('", "')'", "'n'", "'!'", "'~'", "'-'", "'+'", "'*'", "'/'",
+ "']'", "'('", "')'", "'new'", "'!'", "'~'", "'-'", "'+'", "'*'", "'/'",
"'%'", "'&'", "'|'", "';'", "$accept", "program", "compilation_units",
"compilation_unit", "pragma", "location_directive", "annotate_directive",
- "hll_def", "constdef", "$@1", "pmc_const", "$@2", "$@3", "any_string",
- "pasmcode", "pasmline", "pasm_inst", "$@4", "$@5", "pasm_args", "emit",
- "$@6", "opt_pasmcode", "class_namespace", "maybe_ns", "sub", "$@7",
- "$@8", "$@9", "sub_params", "sub_param", "$@10", "sub_param_type_def",
- "multi", "outer", "vtable", "method", "ns_entry_name", "instanceof",
- "subid", "multi_types", "multi_type", "sub_body", "pcc_sub_call", "@11",
+ "hll_def", "constdef", "@1", "pmc_const", "@2", "@3", "any_string",
+ "pasmcode", "pasmline", "pasm_inst", "@4", "@5", "pasm_args", "emit",
+ "@6", "opt_pasmcode", "class_namespace", "maybe_ns", "sub", "@7", "@8",
+ "@9", "sub_params", "sub_param", "@10", "sub_param_type_def", "multi",
+ "outer", "vtable", "method", "ns_entry_name", "instanceof", "subid",
+ "multi_types", "multi_type", "sub_body", "pcc_sub_call", "@11",
"opt_label", "opt_invocant", "sub_proto", "sub_proto_list", "proto",
- "pcc_call", "pcc_args", "pcc_arg", "pcc_results", "pcc_result", "$@12",
- "paramtype_list", "paramtype", "pcc_ret", "$@13", "pcc_yield", "$@14",
+ "pcc_call", "pcc_args", "pcc_arg", "pcc_results", "pcc_result", "@12",
+ "paramtype_list", "paramtype", "pcc_ret", "@13", "pcc_yield", "@14",
"pcc_returns", "pcc_yields", "pcc_return", "pcc_set_yield",
- "pcc_return_many", "$@15", "return_or_yield", "var_returns",
- "statements", "helper_clear_state", "statement", "labels", "_labels",
- "label", "instruction", "id_list", "id_list_id", "opt_unique_reg",
- "labeled_inst", "$@16", "$@17", "$@18", "type", "classname",
- "assignment", "@19", "un_op", "bin_op", "get_results", "@20",
- "op_assign", "assign_op", "func_assign", "the_sub", "sub_call", "@21",
- "arglist", "arg", "argtype_list", "argtype", "result", "targetlist",
- "conditional_statement", "unless_statement", "if_statement",
- "comma_or_goto", "relop", "target", "vars", "_vars", "_var_or_i",
- "sub_label_op_c", "sub_label_op", "label_op", "var_or_i", "var",
- "keylist", "$@22", "keylist_force", "$@23", "_keylist", "key", "reg",
- "const", 0
+ "pcc_return_many", "@15", "return_or_yield", "var_returns", "statements",
+ "helper_clear_state", "statement", "labels", "_labels", "label",
+ "instruction", "id_list", "id_list_id", "opt_unique_reg", "labeled_inst",
+ "@16", "@17", "@18", "type", "classname", "assignment", "@19", "un_op",
+ "bin_op", "get_results", "@20", "op_assign", "assign_op", "func_assign",
+ "the_sub", "sub_call", "@21", "arglist", "arg", "argtype_list",
+ "argtype", "result", "targetlist", "conditional_statement",
+ "unless_statement", "if_statement", "comma_or_goto", "relop", "target",
+ "vars", "_vars", "_var_or_i", "sub_label_op_c", "sub_label_op",
+ "label_op", "var_or_i", "var", "keylist", "@22", "keylist_force", "@23",
+ "_keylist", "key", "reg", "const", 0
};
#endif
@@ -2605,20 +2589,17 @@
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
#else
static void
-yy_stack_print (yybottom, yytop)
- yytype_int16 *yybottom;
- yytype_int16 *yytop;
+yy_stack_print (bottom, top)
+ yytype_int16 *bottom;
+ yytype_int16 *top;
#endif
{
YYFPRINTF (stderr, "Stack now");
- for (; yybottom <= yytop; yybottom++)
- {
- int yybot = *yybottom;
- YYFPRINTF (stderr, " %d", yybot);
- }
+ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
YYFPRINTF (stderr, "\n");
}
@@ -2654,11 +2635,11 @@
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
- YYFPRINTF (stderr, " $%d = ", yyi + 1);
+ fprintf (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
&(yyvsp[(yyi + 1) - (yynrhs)])
, yyscanner, interp);
- YYFPRINTF (stderr, "\n");
+ fprintf (stderr, "\n");
}
}
@@ -2942,8 +2923,10 @@
break;
}
}
+
/* Prevent warnings from -Wmissing-prototypes. */
+
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
@@ -2962,9 +2945,10 @@
-/*-------------------------.
-| yyparse or yypush_parse. |
-`-------------------------*/
+
+/*----------.
+| yyparse. |
+`----------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
@@ -2989,46 +2973,22 @@
#endif
#endif
{
-/* The lookahead symbol. */
+ /* The look-ahead symbol. */
int yychar;
-/* The semantic value of the lookahead symbol. */
+/* The semantic value of the look-ahead symbol. */
YYSTYPE yylval;
- /* Number of syntax errors so far. */
- int yynerrs;
-
- int yystate;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-
- /* The stacks and their tools:
- `yyss': related to states.
- `yyvs': related to semantic values.
-
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
-
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss;
- yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs;
- YYSTYPE *yyvsp;
-
- YYSIZE_T yystacksize;
+/* Number of syntax errors so far. */
+int yynerrs;
+ int yystate;
int yyn;
int yyresult;
- /* Lookahead token as an internal (translated) token number. */
- int yytoken;
- /* The variables used to return semantic value and location from the
- action routines. */
- YYSTYPE yyval;
-
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
#if YYERROR_VERBOSE
/* Buffer for error messages, and its allocated size. */
char yymsgbuf[128];
@@ -3036,28 +2996,51 @@
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif
+ /* Three stacks and their tools:
+ `yyss': related to states,
+ `yyvs': related to semantic values,
+ `yyls': related to locations.
+
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss = yyssa;
+ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+ YYSTYPE *yyvsp;
+
+
+
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+
+
/* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */
int yylen = 0;
- yytoken = 0;
- yyss = yyssa;
- yyvs = yyvsa;
- yystacksize = YYINITDEPTH;
-
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
+ yychar = YYEMPTY; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
+
yyssp = yyss;
yyvsp = yyvs;
@@ -3087,6 +3070,7 @@
YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss;
+
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
@@ -3094,6 +3078,7 @@
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
+
&yystacksize);
yyss = yyss1;
@@ -3116,8 +3101,9 @@
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss_alloc, yyss);
- YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
@@ -3128,6 +3114,7 @@
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
+
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
@@ -3137,9 +3124,6 @@
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
- if (yystate == YYFINAL)
- YYACCEPT;
-
goto yybackup;
/*-----------.
@@ -3148,16 +3132,16 @@
yybackup:
/* Do appropriate processing given the current state. Read a
- lookahead token if we need one and don't already have one. */
+ look-ahead token if we need one and don't already have one. */
- /* First try to decide what to do without reference to lookahead token. */
+ /* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate];
if (yyn == YYPACT_NINF)
goto yydefault;
- /* Not known => get a lookahead token if don't already have one. */
+ /* Not known => get a look-ahead token if don't already have one. */
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
@@ -3189,16 +3173,20 @@
goto yyreduce;
}
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
- /* Shift the lookahead token. */
+ /* Shift the look-ahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
- /* Discard the shifted token. */
- yychar = YYEMPTY;
+ /* Discard the shifted token unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
yystate = yyn;
*++yyvsp = yylval;
@@ -3238,29 +3226,21 @@
switch (yyn)
{
case 2:
-
-/* Line 1455 of yacc.c */
#line 1154 "compilers/imcc/imcc.y"
{ if (yynerrs) YYABORT; (yyval.i) = 0; }
break;
case 5:
-
-/* Line 1455 of yacc.c */
#line 1163 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 6:
-
-/* Line 1455 of yacc.c */
#line 1164 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 7:
-
-/* Line 1455 of yacc.c */
#line 1166 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
@@ -3270,8 +3250,6 @@
break;
case 8:
-
-/* Line 1455 of yacc.c */
#line 1172 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
@@ -3281,43 +3259,31 @@
break;
case 9:
-
-/* Line 1455 of yacc.c */
#line 1177 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 10:
-
-/* Line 1455 of yacc.c */
#line 1178 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 11:
-
-/* Line 1455 of yacc.c */
#line 1179 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 12:
-
-/* Line 1455 of yacc.c */
#line 1180 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 13:
-
-/* Line 1455 of yacc.c */
#line 1184 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 14:
-
-/* Line 1455 of yacc.c */
#line 1186 "compilers/imcc/imcc.y"
{
(yyval.i) = 0;
@@ -3327,8 +3293,6 @@
break;
case 15:
-
-/* Line 1455 of yacc.c */
#line 1195 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
@@ -3338,8 +3302,6 @@
break;
case 16:
-
-/* Line 1455 of yacc.c */
#line 1201 "compilers/imcc/imcc.y"
{
/* set_filename() frees the STRINGC */
@@ -3348,8 +3310,6 @@
break;
case 17:
-
-/* Line 1455 of yacc.c */
#line 1209 "compilers/imcc/imcc.y"
{
/* We'll want to store an entry while emitting instructions, so just
@@ -3361,8 +3321,6 @@
break;
case 18:
-
-/* Line 1455 of yacc.c */
#line 1221 "compilers/imcc/imcc.y"
{
STRING * const hll_name = Parrot_str_unescape(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL);
@@ -3376,15 +3334,11 @@
break;
case 19:
-
-/* Line 1455 of yacc.c */
#line 1233 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 20:
-
-/* Line 1455 of yacc.c */
#line 1234 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
@@ -3394,15 +3348,11 @@
break;
case 21:
-
-/* Line 1455 of yacc.c */
#line 1242 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 22:
-
-/* Line 1455 of yacc.c */
#line 1243 "compilers/imcc/imcc.y"
{
(yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
@@ -3412,15 +3362,11 @@
break;
case 23:
-
-/* Line 1455 of yacc.c */
#line 1249 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 24:
-
-/* Line 1455 of yacc.c */
#line 1250 "compilers/imcc/imcc.y"
{
(yyval.i) = mk_pmc_const_named(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
@@ -3431,50 +3377,36 @@
break;
case 29:
-
-/* Line 1455 of yacc.c */
#line 1268 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 30:
-
-/* Line 1455 of yacc.c */
#line 1269 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 31:
-
-/* Line 1455 of yacc.c */
#line 1270 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 32:
-
-/* Line 1455 of yacc.c */
#line 1271 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 33:
-
-/* Line 1455 of yacc.c */
#line 1272 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 36:
-
-/* Line 1455 of yacc.c */
#line 1277 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 37:
-
-/* Line 1455 of yacc.c */
#line 1279 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit,
@@ -3485,8 +3417,6 @@
break;
case 38:
-
-/* Line 1455 of yacc.c */
#line 1286 "compilers/imcc/imcc.y"
{
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3495,8 +3425,6 @@
break;
case 39:
-
-/* Line 1455 of yacc.c */
#line 1291 "compilers/imcc/imcc.y"
{
(yyval.i) = iSUBROUTINE(interp,
@@ -3508,8 +3436,6 @@
break;
case 40:
-
-/* Line 1455 of yacc.c */
#line 1299 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
@@ -3517,8 +3443,6 @@
break;
case 41:
-
-/* Line 1455 of yacc.c */
#line 1303 "compilers/imcc/imcc.y"
{
char *name = mem_sys_strdup((yyvsp[(2) - (4)].s) + 1);
@@ -3535,22 +3459,16 @@
break;
case 42:
-
-/* Line 1455 of yacc.c */
#line 1315 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 44:
-
-/* Line 1455 of yacc.c */
#line 1323 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
break;
case 45:
-
-/* Line 1455 of yacc.c */
#line 1326 "compilers/imcc/imcc.y"
{
/* if (optimizer_level & OPT_PASM)
@@ -3562,8 +3480,6 @@
break;
case 48:
-
-/* Line 1455 of yacc.c */
#line 1342 "compilers/imcc/imcc.y"
{
int re_open = 0;
@@ -3579,8 +3495,6 @@
break;
case 49:
-
-/* Line 1455 of yacc.c */
#line 1357 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(2) - (3)].sr);
@@ -3588,15 +3502,11 @@
break;
case 50:
-
-/* Line 1455 of yacc.c */
#line 1360 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 51:
-
-/* Line 1455 of yacc.c */
#line 1365 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
@@ -3604,8 +3514,6 @@
break;
case 52:
-
-/* Line 1455 of yacc.c */
#line 1369 "compilers/imcc/imcc.y"
{
iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
@@ -3613,8 +3521,6 @@
break;
case 53:
-
-/* Line 1455 of yacc.c */
#line 1373 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(5) - (6)].t);
@@ -3626,29 +3532,21 @@
break;
case 54:
-
-/* Line 1455 of yacc.c */
#line 1381 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 55:
-
-/* Line 1455 of yacc.c */
#line 1385 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 56:
-
-/* Line 1455 of yacc.c */
#line 1386 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 57:
-
-/* Line 1455 of yacc.c */
#line 1388 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
@@ -3662,22 +3560,16 @@
break;
case 58:
-
-/* Line 1455 of yacc.c */
#line 1400 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 59:
-
-/* Line 1455 of yacc.c */
#line 1400 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; }
break;
case 60:
-
-/* Line 1455 of yacc.c */
#line 1405 "compilers/imcc/imcc.y"
{
if ((yyvsp[(3) - (3)].t) & VT_UNIQUE_REG)
@@ -3702,15 +3594,11 @@
break;
case 61:
-
-/* Line 1455 of yacc.c */
#line 1430 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 62:
-
-/* Line 1455 of yacc.c */
#line 1435 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3720,8 +3608,6 @@
break;
case 63:
-
-/* Line 1455 of yacc.c */
#line 1441 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3731,8 +3617,6 @@
break;
case 64:
-
-/* Line 1455 of yacc.c */
#line 1450 "compilers/imcc/imcc.y"
{
(yyval.t) = P_VTABLE;
@@ -3742,8 +3626,6 @@
break;
case 65:
-
-/* Line 1455 of yacc.c */
#line 1456 "compilers/imcc/imcc.y"
{
(yyval.t) = P_VTABLE;
@@ -3753,8 +3635,6 @@
break;
case 66:
-
-/* Line 1455 of yacc.c */
#line 1465 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
@@ -3764,8 +3644,6 @@
break;
case 67:
-
-/* Line 1455 of yacc.c */
#line 1471 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
@@ -3775,8 +3653,6 @@
break;
case 68:
-
-/* Line 1455 of yacc.c */
#line 1480 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3786,8 +3662,6 @@
break;
case 69:
-
-/* Line 1455 of yacc.c */
#line 1486 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3797,8 +3671,6 @@
break;
case 70:
-
-/* Line 1455 of yacc.c */
#line 1495 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3807,8 +3679,6 @@
break;
case 71:
-
-/* Line 1455 of yacc.c */
#line 1503 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3817,8 +3687,6 @@
break;
case 72:
-
-/* Line 1455 of yacc.c */
#line 1508 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3829,8 +3697,6 @@
break;
case 73:
-
-/* Line 1455 of yacc.c */
#line 1518 "compilers/imcc/imcc.y"
{
add_pcc_multi(IMCC_INFO(interp)->cur_call, NULL);
@@ -3838,8 +3704,6 @@
break;
case 74:
-
-/* Line 1455 of yacc.c */
#line 1522 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3848,8 +3712,6 @@
break;
case 75:
-
-/* Line 1455 of yacc.c */
#line 1527 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
@@ -3858,36 +3720,26 @@
break;
case 76:
-
-/* Line 1455 of yacc.c */
#line 1534 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "INTVAL", 'S'); }
break;
case 77:
-
-/* Line 1455 of yacc.c */
#line 1535 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
break;
case 78:
-
-/* Line 1455 of yacc.c */
#line 1536 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "PMC", 'S'); }
break;
case 79:
-
-/* Line 1455 of yacc.c */
#line 1537 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "STRING", 'S'); }
break;
case 80:
-
-/* Line 1455 of yacc.c */
#line 1539 "compilers/imcc/imcc.y"
{
SymReg *r;
@@ -3902,8 +3754,6 @@
break;
case 81:
-
-/* Line 1455 of yacc.c */
#line 1550 "compilers/imcc/imcc.y"
{
SymReg *r;
@@ -3918,15 +3768,11 @@
break;
case 82:
-
-/* Line 1455 of yacc.c */
#line 1560 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); }
break;
case 85:
-
-/* Line 1455 of yacc.c */
#line 1570 "compilers/imcc/imcc.y"
{
char name[128];
@@ -3954,113 +3800,81 @@
break;
case 86:
-
-/* Line 1455 of yacc.c */
#line 1598 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 87:
-
-/* Line 1455 of yacc.c */
#line 1602 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
break;
case 88:
-
-/* Line 1455 of yacc.c */
#line 1603 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
break;
case 89:
-
-/* Line 1455 of yacc.c */
#line 1607 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 90:
-
-/* Line 1455 of yacc.c */
#line 1608 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
break;
case 91:
-
-/* Line 1455 of yacc.c */
#line 1612 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 93:
-
-/* Line 1455 of yacc.c */
#line 1617 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (1)].t); }
break;
case 94:
-
-/* Line 1455 of yacc.c */
#line 1618 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 95:
-
-/* Line 1455 of yacc.c */
#line 1622 "compilers/imcc/imcc.y"
{ (yyval.t) = P_LOAD; }
break;
case 96:
-
-/* Line 1455 of yacc.c */
#line 1623 "compilers/imcc/imcc.y"
{ (yyval.t) = P_INIT; }
break;
case 97:
-
-/* Line 1455 of yacc.c */
#line 1624 "compilers/imcc/imcc.y"
{ (yyval.t) = P_MAIN; }
break;
case 98:
-
-/* Line 1455 of yacc.c */
#line 1625 "compilers/imcc/imcc.y"
{ (yyval.t) = P_IMMEDIATE; }
break;
case 99:
-
-/* Line 1455 of yacc.c */
#line 1626 "compilers/imcc/imcc.y"
{ (yyval.t) = P_POSTCOMP; }
break;
case 100:
-
-/* Line 1455 of yacc.c */
#line 1627 "compilers/imcc/imcc.y"
{ (yyval.t) = P_ANON; }
break;
case 101:
-
-/* Line 1455 of yacc.c */
#line 1628 "compilers/imcc/imcc.y"
{ (yyval.t) = P_NEED_LEX; }
break;
case 109:
-
-/* Line 1455 of yacc.c */
#line 1640 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
@@ -4069,8 +3883,6 @@
break;
case 110:
-
-/* Line 1455 of yacc.c */
#line 1645 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -4078,8 +3890,6 @@
break;
case 111:
-
-/* Line 1455 of yacc.c */
#line 1649 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -4088,8 +3898,6 @@
break;
case 112:
-
-/* Line 1455 of yacc.c */
#line 1654 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -4097,8 +3905,6 @@
break;
case 113:
-
-/* Line 1455 of yacc.c */
#line 1658 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
@@ -4106,8 +3912,6 @@
break;
case 114:
-
-/* Line 1455 of yacc.c */
#line 1662 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
@@ -4116,8 +3920,6 @@
break;
case 115:
-
-/* Line 1455 of yacc.c */
#line 1667 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S'));
@@ -4126,36 +3928,26 @@
break;
case 116:
-
-/* Line 1455 of yacc.c */
#line 1675 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 117:
-
-/* Line 1455 of yacc.c */
#line 1676 "compilers/imcc/imcc.y"
{ add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
break;
case 118:
-
-/* Line 1455 of yacc.c */
#line 1680 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (2)].sr); }
break;
case 119:
-
-/* Line 1455 of yacc.c */
#line 1685 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 120:
-
-/* Line 1455 of yacc.c */
#line 1687 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
@@ -4164,22 +3956,16 @@
break;
case 121:
-
-/* Line 1455 of yacc.c */
#line 1694 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 122:
-
-/* Line 1455 of yacc.c */
#line 1695 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 123:
-
-/* Line 1455 of yacc.c */
#line 1696 "compilers/imcc/imcc.y"
{
IdList * const l = (yyvsp[(4) - (4)].idlist);
@@ -4195,92 +3981,66 @@
break;
case 124:
-
-/* Line 1455 of yacc.c */
#line 1710 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 125:
-
-/* Line 1455 of yacc.c */
#line 1711 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 126:
-
-/* Line 1455 of yacc.c */
#line 1715 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 127:
-
-/* Line 1455 of yacc.c */
#line 1716 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPTIONAL; }
break;
case 128:
-
-/* Line 1455 of yacc.c */
#line 1717 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPT_FLAG; }
break;
case 129:
-
-/* Line 1455 of yacc.c */
#line 1718 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 130:
-
-/* Line 1455 of yacc.c */
#line 1719 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
break;
case 131:
-
-/* Line 1455 of yacc.c */
#line 1720 "compilers/imcc/imcc.y"
{ adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
break;
case 132:
-
-/* Line 1455 of yacc.c */
#line 1721 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_UNIQUE_REG; }
break;
case 133:
-
-/* Line 1455 of yacc.c */
#line 1722 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_CALL_SIG; }
break;
case 134:
-
-/* Line 1455 of yacc.c */
#line 1727 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 0); }
break;
case 135:
-
-/* Line 1455 of yacc.c */
#line 1729 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 136:
-
-/* Line 1455 of yacc.c */
#line 1731 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
@@ -4289,29 +4049,21 @@
break;
case 137:
-
-/* Line 1455 of yacc.c */
#line 1738 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 1); }
break;
case 138:
-
-/* Line 1455 of yacc.c */
#line 1740 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 139:
-
-/* Line 1455 of yacc.c */
#line 1744 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 140:
-
-/* Line 1455 of yacc.c */
#line 1746 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
@@ -4320,8 +4072,6 @@
break;
case 141:
-
-/* Line 1455 of yacc.c */
#line 1751 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
@@ -4330,15 +4080,11 @@
break;
case 142:
-
-/* Line 1455 of yacc.c */
#line 1758 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 143:
-
-/* Line 1455 of yacc.c */
#line 1760 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
@@ -4347,8 +4093,6 @@
break;
case 144:
-
-/* Line 1455 of yacc.c */
#line 1765 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
@@ -4357,22 +4101,16 @@
break;
case 145:
-
-/* Line 1455 of yacc.c */
#line 1772 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 146:
-
-/* Line 1455 of yacc.c */
#line 1776 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 147:
-
-/* Line 1455 of yacc.c */
#line 1781 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->asm_state == AsmDefault)
@@ -4381,8 +4119,6 @@
break;
case 148:
-
-/* Line 1455 of yacc.c */
#line 1786 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
@@ -4391,29 +4127,21 @@
break;
case 149:
-
-/* Line 1455 of yacc.c */
#line 1793 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 150:
-
-/* Line 1455 of yacc.c */
#line 1794 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 151:
-
-/* Line 1455 of yacc.c */
#line 1798 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 152:
-
-/* Line 1455 of yacc.c */
#line 1800 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4427,8 +4155,6 @@
break;
case 153:
-
-/* Line 1455 of yacc.c */
#line 1810 "compilers/imcc/imcc.y"
{
SymReg * const name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S');
@@ -4437,8 +4163,6 @@
break;
case 154:
-
-/* Line 1455 of yacc.c */
#line 1815 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4452,8 +4176,6 @@
break;
case 155:
-
-/* Line 1455 of yacc.c */
#line 1825 "compilers/imcc/imcc.y"
{
SymReg * const name = mk_const(interp, (yyvsp[(3) - (5)].s), 'S');
@@ -4462,64 +4184,46 @@
break;
case 158:
-
-/* Line 1455 of yacc.c */
#line 1846 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 159:
-
-/* Line 1455 of yacc.c */
#line 1851 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (2)].i); }
break;
case 160:
-
-/* Line 1455 of yacc.c */
#line 1852 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 161:
-
-/* Line 1455 of yacc.c */
#line 1853 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 162:
-
-/* Line 1455 of yacc.c */
#line 1854 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 163:
-
-/* Line 1455 of yacc.c */
#line 1855 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 164:
-
-/* Line 1455 of yacc.c */
#line 1856 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 165:
-
-/* Line 1455 of yacc.c */
#line 1860 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 169:
-
-/* Line 1455 of yacc.c */
#line 1871 "compilers/imcc/imcc.y"
{
Instruction * const i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
@@ -4529,15 +4233,11 @@
break;
case 170:
-
-/* Line 1455 of yacc.c */
#line 1881 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (3)].i); }
break;
case 171:
-
-/* Line 1455 of yacc.c */
#line 1883 "compilers/imcc/imcc.y"
{
if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
@@ -4549,8 +4249,6 @@
break;
case 172:
-
-/* Line 1455 of yacc.c */
#line 1894 "compilers/imcc/imcc.y"
{
IdList* const l = (yyvsp[(1) - (1)].idlist);
@@ -4560,8 +4258,6 @@
break;
case 173:
-
-/* Line 1455 of yacc.c */
#line 1901 "compilers/imcc/imcc.y"
{
IdList* const l = (yyvsp[(3) - (3)].idlist);
@@ -4571,8 +4267,6 @@
break;
case 174:
-
-/* Line 1455 of yacc.c */
#line 1910 "compilers/imcc/imcc.y"
{
IdList* const l = mem_allocate_n_zeroed_typed(1, IdList);
@@ -4583,29 +4277,21 @@
break;
case 175:
-
-/* Line 1455 of yacc.c */
#line 1919 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 176:
-
-/* Line 1455 of yacc.c */
#line 1920 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 179:
-
-/* Line 1455 of yacc.c */
#line 1927 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 180:
-
-/* Line 1455 of yacc.c */
#line 1928 "compilers/imcc/imcc.y"
{
IdList *l = (yyvsp[(4) - (4)].idlist);
@@ -4625,8 +4311,6 @@
break;
case 181:
-
-/* Line 1455 of yacc.c */
#line 1944 "compilers/imcc/imcc.y"
{
if ((yyvsp[(4) - (4)].sr)->set != 'P') {
@@ -4647,8 +4331,6 @@
break;
case 182:
-
-/* Line 1455 of yacc.c */
#line 1961 "compilers/imcc/imcc.y"
{
if ((yyvsp[(4) - (4)].sr)->set != 'P') {
@@ -4665,15 +4347,11 @@
break;
case 183:
-
-/* Line 1455 of yacc.c */
#line 1973 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 184:
-
-/* Line 1455 of yacc.c */
#line 1974 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
@@ -4683,15 +4361,11 @@
break;
case 186:
-
-/* Line 1455 of yacc.c */
#line 1981 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 187:
-
-/* Line 1455 of yacc.c */
#line 1982 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
@@ -4701,8 +4375,6 @@
break;
case 188:
-
-/* Line 1455 of yacc.c */
#line 1988 "compilers/imcc/imcc.y"
{
(yyval.i) = NULL;
@@ -4712,8 +4384,6 @@
break;
case 189:
-
-/* Line 1455 of yacc.c */
#line 1994 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr));
@@ -4721,8 +4391,6 @@
break;
case 190:
-
-/* Line 1455 of yacc.c */
#line 1998 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp,
@@ -4738,64 +4406,46 @@
break;
case 191:
-
-/* Line 1455 of yacc.c */
#line 2009 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
break;
case 192:
-
-/* Line 1455 of yacc.c */
#line 2010 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 193:
-
-/* Line 1455 of yacc.c */
#line 2011 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 196:
-
-/* Line 1455 of yacc.c */
#line 2014 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 197:
-
-/* Line 1455 of yacc.c */
#line 2018 "compilers/imcc/imcc.y"
{ (yyval.t) = 'I'; }
break;
case 198:
-
-/* Line 1455 of yacc.c */
#line 2019 "compilers/imcc/imcc.y"
{ (yyval.t) = 'N'; }
break;
case 199:
-
-/* Line 1455 of yacc.c */
#line 2020 "compilers/imcc/imcc.y"
{ (yyval.t) = 'S'; }
break;
case 200:
-
-/* Line 1455 of yacc.c */
#line 2021 "compilers/imcc/imcc.y"
{ (yyval.t) = 'P'; }
break;
case 201:
-
-/* Line 1455 of yacc.c */
#line 2026 "compilers/imcc/imcc.y"
{
/* there'd normally be a mem_sys_strdup() here, but the lexer already
@@ -4809,50 +4459,36 @@
break;
case 202:
-
-/* Line 1455 of yacc.c */
#line 2039 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
break;
case 203:
-
-/* Line 1455 of yacc.c */
#line 2041 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 204:
-
-/* Line 1455 of yacc.c */
#line 2043 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); }
break;
case 205:
-
-/* Line 1455 of yacc.c */
#line 2045 "compilers/imcc/imcc.y"
{ (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); }
break;
case 206:
-
-/* Line 1455 of yacc.c */
#line 2047 "compilers/imcc/imcc.y"
{ (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
break;
case 207:
-
-/* Line 1455 of yacc.c */
#line 2052 "compilers/imcc/imcc.y"
{ (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); }
break;
case 208:
-
-/* Line 1455 of yacc.c */
#line 2055 "compilers/imcc/imcc.y"
{
add_pcc_result((yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
@@ -4862,8 +4498,6 @@
break;
case 209:
-
-/* Line 1455 of yacc.c */
#line 2061 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
@@ -4871,8 +4505,6 @@
break;
case 210:
-
-/* Line 1455 of yacc.c */
#line 2065 "compilers/imcc/imcc.y"
{
IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
@@ -4881,8 +4513,6 @@
break;
case 214:
-
-/* Line 1455 of yacc.c */
#line 2073 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
@@ -4890,190 +4520,136 @@
break;
case 215:
-
-/* Line 1455 of yacc.c */
#line 2080 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"not"; }
break;
case 216:
-
-/* Line 1455 of yacc.c */
#line 2081 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bnot"; }
break;
case 217:
-
-/* Line 1455 of yacc.c */
#line 2082 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"neg"; }
break;
case 218:
-
-/* Line 1455 of yacc.c */
#line 2086 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 219:
-
-/* Line 1455 of yacc.c */
#line 2087 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 220:
-
-/* Line 1455 of yacc.c */
#line 2088 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 221:
-
-/* Line 1455 of yacc.c */
#line 2089 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 222:
-
-/* Line 1455 of yacc.c */
#line 2090 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 223:
-
-/* Line 1455 of yacc.c */
#line 2091 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 224:
-
-/* Line 1455 of yacc.c */
#line 2092 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"pow"; }
break;
case 225:
-
-/* Line 1455 of yacc.c */
#line 2093 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 226:
-
-/* Line 1455 of yacc.c */
#line 2094 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"iseq"; }
break;
case 227:
-
-/* Line 1455 of yacc.c */
#line 2095 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isne"; }
break;
case 228:
-
-/* Line 1455 of yacc.c */
#line 2096 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isgt"; }
break;
case 229:
-
-/* Line 1455 of yacc.c */
#line 2097 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isge"; }
break;
case 230:
-
-/* Line 1455 of yacc.c */
#line 2098 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"islt"; }
break;
case 231:
-
-/* Line 1455 of yacc.c */
#line 2099 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isle"; }
break;
case 232:
-
-/* Line 1455 of yacc.c */
#line 2100 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 233:
-
-/* Line 1455 of yacc.c */
#line 2101 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 234:
-
-/* Line 1455 of yacc.c */
#line 2102 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 235:
-
-/* Line 1455 of yacc.c */
#line 2103 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"and"; }
break;
case 236:
-
-/* Line 1455 of yacc.c */
#line 2104 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"or"; }
break;
case 237:
-
-/* Line 1455 of yacc.c */
#line 2105 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"xor"; }
break;
case 238:
-
-/* Line 1455 of yacc.c */
#line 2106 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 239:
-
-/* Line 1455 of yacc.c */
#line 2107 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 240:
-
-/* Line 1455 of yacc.c */
#line 2108 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 241:
-
-/* Line 1455 of yacc.c */
#line 2114 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
@@ -5083,113 +4659,81 @@
break;
case 242:
-
-/* Line 1455 of yacc.c */
#line 2119 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 243:
-
-/* Line 1455 of yacc.c */
#line 2126 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
break;
case 244:
-
-/* Line 1455 of yacc.c */
#line 2130 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 245:
-
-/* Line 1455 of yacc.c */
#line 2131 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 246:
-
-/* Line 1455 of yacc.c */
#line 2132 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 247:
-
-/* Line 1455 of yacc.c */
#line 2133 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 248:
-
-/* Line 1455 of yacc.c */
#line 2134 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 249:
-
-/* Line 1455 of yacc.c */
#line 2135 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 250:
-
-/* Line 1455 of yacc.c */
#line 2136 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 251:
-
-/* Line 1455 of yacc.c */
#line 2137 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 252:
-
-/* Line 1455 of yacc.c */
#line 2138 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 253:
-
-/* Line 1455 of yacc.c */
#line 2139 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 254:
-
-/* Line 1455 of yacc.c */
#line 2140 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 255:
-
-/* Line 1455 of yacc.c */
#line 2141 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 256:
-
-/* Line 1455 of yacc.c */
#line 2142 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 257:
-
-/* Line 1455 of yacc.c */
#line 2148 "compilers/imcc/imcc.y"
{
(yyval.i) = func_ins(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(3) - (4)].s),
@@ -5201,29 +4745,21 @@
break;
case 258:
-
-/* Line 1455 of yacc.c */
#line 2158 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 259:
-
-/* Line 1455 of yacc.c */
#line 2159 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 260:
-
-/* Line 1455 of yacc.c */
#line 2160 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 261:
-
-/* Line 1455 of yacc.c */
#line 2162 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
@@ -5233,8 +4769,6 @@
break;
case 262:
-
-/* Line 1455 of yacc.c */
#line 2168 "compilers/imcc/imcc.y"
{
/* disallow bareword method names; SREG name constants are fine */
@@ -5252,8 +4786,6 @@
break;
case 263:
-
-/* Line 1455 of yacc.c */
#line 2182 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
@@ -5263,8 +4795,6 @@
break;
case 264:
-
-/* Line 1455 of yacc.c */
#line 2188 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
@@ -5274,15 +4804,11 @@
break;
case 265:
-
-/* Line 1455 of yacc.c */
#line 2193 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
break;
case 266:
-
-/* Line 1455 of yacc.c */
#line 2199 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
@@ -5291,22 +4817,16 @@
break;
case 267:
-
-/* Line 1455 of yacc.c */
#line 2203 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (5)].i); }
break;
case 268:
-
-/* Line 1455 of yacc.c */
#line 2207 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 269:
-
-/* Line 1455 of yacc.c */
#line 2209 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5320,8 +4840,6 @@
break;
case 270:
-
-/* Line 1455 of yacc.c */
#line 2219 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5335,8 +4853,6 @@
break;
case 271:
-
-/* Line 1455 of yacc.c */
#line 2229 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5347,8 +4863,6 @@
break;
case 272:
-
-/* Line 1455 of yacc.c */
#line 2236 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5357,8 +4871,6 @@
break;
case 273:
-
-/* Line 1455 of yacc.c */
#line 2241 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5369,71 +4881,51 @@
break;
case 274:
-
-/* Line 1455 of yacc.c */
#line 2250 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 275:
-
-/* Line 1455 of yacc.c */
#line 2254 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 276:
-
-/* Line 1455 of yacc.c */
#line 2255 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 277:
-
-/* Line 1455 of yacc.c */
#line 2259 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 278:
-
-/* Line 1455 of yacc.c */
#line 2260 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 279:
-
-/* Line 1455 of yacc.c */
#line 2261 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_CALL_SIG; }
break;
case 280:
-
-/* Line 1455 of yacc.c */
#line 2264 "compilers/imcc/imcc.y"
{ adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 281:
-
-/* Line 1455 of yacc.c */
#line 2265 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 282:
-
-/* Line 1455 of yacc.c */
#line 2269 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 283:
-
-/* Line 1455 of yacc.c */
#line 2274 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5447,8 +4939,6 @@
break;
case 284:
-
-/* Line 1455 of yacc.c */
#line 2284 "compilers/imcc/imcc.y"
{
add_pcc_named_result(IMCC_INFO(interp)->cur_call,
@@ -5458,8 +4948,6 @@
break;
case 285:
-
-/* Line 1455 of yacc.c */
#line 2290 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
@@ -5473,8 +4961,6 @@
break;
case 286:
-
-/* Line 1455 of yacc.c */
#line 2300 "compilers/imcc/imcc.y"
{
add_pcc_named_result(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
@@ -5483,29 +4969,21 @@
break;
case 287:
-
-/* Line 1455 of yacc.c */
#line 2304 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 288:
-
-/* Line 1455 of yacc.c */
#line 2308 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 289:
-
-/* Line 1455 of yacc.c */
#line 2309 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 290:
-
-/* Line 1455 of yacc.c */
#line 2314 "compilers/imcc/imcc.y"
{
(yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, inv_op((yyvsp[(3) - (6)].s)), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
@@ -5513,8 +4991,6 @@
break;
case 291:
-
-/* Line 1455 of yacc.c */
#line 2318 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
@@ -5522,8 +4998,6 @@
break;
case 292:
-
-/* Line 1455 of yacc.c */
#line 2322 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
@@ -5531,8 +5005,6 @@
break;
case 293:
-
-/* Line 1455 of yacc.c */
#line 2329 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
@@ -5540,8 +5012,6 @@
break;
case 294:
-
-/* Line 1455 of yacc.c */
#line 2333 "compilers/imcc/imcc.y"
{
(yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
@@ -5549,8 +5019,6 @@
break;
case 295:
-
-/* Line 1455 of yacc.c */
#line 2337 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
@@ -5558,92 +5026,66 @@
break;
case 296:
-
-/* Line 1455 of yacc.c */
#line 2343 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 297:
-
-/* Line 1455 of yacc.c */
#line 2344 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 298:
-
-/* Line 1455 of yacc.c */
#line 2348 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"eq"; }
break;
case 299:
-
-/* Line 1455 of yacc.c */
#line 2349 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ne"; }
break;
case 300:
-
-/* Line 1455 of yacc.c */
#line 2350 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"gt"; }
break;
case 301:
-
-/* Line 1455 of yacc.c */
#line 2351 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ge"; }
break;
case 302:
-
-/* Line 1455 of yacc.c */
#line 2352 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lt"; }
break;
case 303:
-
-/* Line 1455 of yacc.c */
#line 2353 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"le"; }
break;
case 306:
-
-/* Line 1455 of yacc.c */
#line 2362 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 307:
-
-/* Line 1455 of yacc.c */
#line 2363 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (1)].sr); }
break;
case 308:
-
-/* Line 1455 of yacc.c */
#line 2367 "compilers/imcc/imcc.y"
{ (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
break;
case 310:
-
-/* Line 1455 of yacc.c */
#line 2372 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
break;
case 311:
-
-/* Line 1455 of yacc.c */
#line 2374 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (4)].sr);
@@ -5654,8 +5096,6 @@
break;
case 312:
-
-/* Line 1455 of yacc.c */
#line 2381 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
@@ -5664,50 +5104,36 @@
break;
case 314:
-
-/* Line 1455 of yacc.c */
#line 2388 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 315:
-
-/* Line 1455 of yacc.c */
#line 2389 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 316:
-
-/* Line 1455 of yacc.c */
#line 2393 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 317:
-
-/* Line 1455 of yacc.c */
#line 2394 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 318:
-
-/* Line 1455 of yacc.c */
#line 2398 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 319:
-
-/* Line 1455 of yacc.c */
#line 2399 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 324:
-
-/* Line 1455 of yacc.c */
#line 2413 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
@@ -5715,8 +5141,6 @@
break;
case 325:
-
-/* Line 1455 of yacc.c */
#line 2417 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
@@ -5726,8 +5150,6 @@
break;
case 326:
-
-/* Line 1455 of yacc.c */
#line 2425 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
@@ -5735,8 +5157,6 @@
break;
case 327:
-
-/* Line 1455 of yacc.c */
#line 2429 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
@@ -5746,15 +5166,11 @@
break;
case 328:
-
-/* Line 1455 of yacc.c */
#line 2437 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
break;
case 329:
-
-/* Line 1455 of yacc.c */
#line 2439 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
@@ -5763,8 +5179,6 @@
break;
case 330:
-
-/* Line 1455 of yacc.c */
#line 2447 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
@@ -5772,72 +5186,53 @@
break;
case 331:
-
-/* Line 1455 of yacc.c */
#line 2453 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
break;
case 332:
-
-/* Line 1455 of yacc.c */
#line 2454 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
break;
case 333:
-
-/* Line 1455 of yacc.c */
#line 2455 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
break;
case 334:
-
-/* Line 1455 of yacc.c */
#line 2456 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
break;
case 335:
-
-/* Line 1455 of yacc.c */
#line 2457 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 336:
-
-/* Line 1455 of yacc.c */
#line 2461 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 337:
-
-/* Line 1455 of yacc.c */
#line 2462 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 338:
-
-/* Line 1455 of yacc.c */
#line 2463 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 339:
-
-/* Line 1455 of yacc.c */
#line 2464 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
-
-/* Line 1455 of yacc.c */
-#line 5830 "compilers/imcc/imcparser.c"
+/* Line 1267 of yacc.c. */
+#line 5225 "compilers/imcc/imcparser.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5848,6 +5243,7 @@
*++yyvsp = yyval;
+
/* Now `shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
@@ -5912,7 +5308,7 @@
if (yyerrstatus == 3)
{
- /* If just tried and failed to reuse lookahead token after an
+ /* If just tried and failed to reuse look-ahead token after an
error, discard it. */
if (yychar <= YYEOF)
@@ -5929,7 +5325,7 @@
}
}
- /* Else will try to reuse lookahead token after shifting the error
+ /* Else will try to reuse look-ahead token after shifting the error
token. */
goto yyerrlab1;
@@ -5986,6 +5382,9 @@
YY_STACK_PRINT (yyss, yyssp);
}
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
*++yyvsp = yylval;
@@ -6010,7 +5409,7 @@
yyresult = 1;
goto yyreturn;
-#if !defined(yyoverflow) || YYERROR_VERBOSE
+#ifndef yyoverflow
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@@ -6021,7 +5420,7 @@
#endif
yyreturn:
- if (yychar != YYEMPTY)
+ if (yychar != YYEOF && yychar != YYEMPTY)
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval, yyscanner, interp);
/* Do not reclaim the symbols of the rule which action triggered
@@ -6047,8 +5446,6 @@
}
-
-/* Line 1675 of yacc.c */
#line 2470 "compilers/imcc/imcc.y"
Modified: branches/gc_encapsulate/compilers/imcc/imcparser.h
==============================================================================
--- branches/gc_encapsulate/compilers/imcc/imcparser.h Sun Jan 31 11:10:14 2010 (r43665)
+++ branches/gc_encapsulate/compilers/imcc/imcparser.h Sun Jan 31 14:53:41 2010 (r43666)
@@ -9,26 +9,27 @@
*/
/* HEADERIZER HFILE: none */
/* HEADERIZER STOP */
-
-/* A Bison parser, made by GNU Bison 2.4.1. */
+/* A Bison parser, made by GNU Bison 2.3. */
/* Skeleton interface for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
+
+ This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -39,11 +40,10 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
-
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
@@ -297,27 +297,21 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-{
-
-/* Line 1676 of yacc.c */
#line 1059 "compilers/imcc/imcc.y"
-
+{
IdList * idlist;
int t;
char * s;
SymReg * sr;
Instruction *i;
-
-
-
-/* Line 1676 of yacc.c */
-#line 304 "compilers/imcc/imcparser.h"
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
+}
+/* Line 1489 of yacc.c. */
+#line 299 "compilers/imcc/imcparser.h"
+ YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
#endif
-
Modified: branches/gc_encapsulate/src/gc/gc_ms.c
==============================================================================
--- branches/gc_encapsulate/src/gc/gc_ms.c Sun Jan 31 11:10:14 2010 (r43665)
+++ branches/gc_encapsulate/src/gc/gc_ms.c Sun Jan 31 14:53:41 2010 (r43666)
@@ -571,6 +571,7 @@
old_size = aligned_size(buffer, Buffer_buflen(buffer));
needed = new_size - old_size;
+ copysize = Buffer_buflen(buffer);
#if 0
XXX
@@ -582,8 +583,6 @@
return;
}
- copysize = Buffer_buflen(buffer);
-
if (!PObj_COW_TEST(buffer))
pool->guaranteed_reclaimable += copysize;
else
More information about the parrot-commits
mailing list