Kannel: Open Source WAP and SMS gateway  svn-r5335
wsgram.c File Reference
#include "wmlscript/wsint.h"
#include <stddef.h>

Go to the source code of this file.

Data Structures

union  YYSTYPE
 
struct  YYLTYPE
 
union  yyalloc
 

Macros

#define YYBISON   1
 
#define YYBISON_VERSION   "3.0.5"
 
#define YYSKELETON_NAME   "yacc.c"
 
#define YYPURE   1
 
#define YYPUSH   0
 
#define YYPULL   1
 
#define yyparse   ws_yy_parse
 
#define yylex   ws_yy_lex
 
#define yyerror   ws_yy_error
 
#define yydebug   ws_yy_debug
 
#define yynerrs   ws_yy_nerrs
 
#define YY_NULLPTR   0
 
#define YYERROR_VERBOSE   0
 
#define YY_WS_YY_Y_TAB_H_INCLUDED
 
#define YYDEBUG   0
 
#define YYTOKENTYPE
 
#define tINVALID   258
 
#define tTRUE   259
 
#define tFALSE   260
 
#define tINTEGER   261
 
#define tFLOAT   262
 
#define tSTRING   263
 
#define tIDENTIFIER   264
 
#define tACCESS   265
 
#define tAGENT   266
 
#define tBREAK   267
 
#define tCONTINUE   268
 
#define tIDIV   269
 
#define tIDIVA   270
 
#define tDOMAIN   271
 
#define tELSE   272
 
#define tEQUIV   273
 
#define tEXTERN   274
 
#define tFOR   275
 
#define tFUNCTION   276
 
#define tHEADER   277
 
#define tHTTP   278
 
#define tIF   279
 
#define tISVALID   280
 
#define tMETA   281
 
#define tNAME   282
 
#define tPATH   283
 
#define tRETURN   284
 
#define tTYPEOF   285
 
#define tUSE   286
 
#define tUSER   287
 
#define tVAR   288
 
#define tWHILE   289
 
#define tURL   290
 
#define tDELETE   291
 
#define tIN   292
 
#define tLIB   293
 
#define tNEW   294
 
#define tNULL   295
 
#define tTHIS   296
 
#define tVOID   297
 
#define tWITH   298
 
#define tCASE   299
 
#define tCATCH   300
 
#define tCLASS   301
 
#define tCONST   302
 
#define tDEBUGGER   303
 
#define tDEFAULT   304
 
#define tDO   305
 
#define tENUM   306
 
#define tEXPORT   307
 
#define tEXTENDS   308
 
#define tFINALLY   309
 
#define tIMPORT   310
 
#define tPRIVATE   311
 
#define tPUBLIC   312
 
#define tSIZEOF   313
 
#define tSTRUCT   314
 
#define tSUPER   315
 
#define tSWITCH   316
 
#define tTHROW   317
 
#define tTRY   318
 
#define tEQ   319
 
#define tLE   320
 
#define tGE   321
 
#define tNE   322
 
#define tAND   323
 
#define tOR   324
 
#define tPLUSPLUS   325
 
#define tMINUSMINUS   326
 
#define tLSHIFT   327
 
#define tRSSHIFT   328
 
#define tRSZSHIFT   329
 
#define tADDA   330
 
#define tSUBA   331
 
#define tMULA   332
 
#define tDIVA   333
 
#define tANDA   334
 
#define tORA   335
 
#define tXORA   336
 
#define tREMA   337
 
#define tLSHIFTA   338
 
#define tRSSHIFTA   339
 
#define tRSZSHIFTA   340
 
#define YYSTYPE_IS_TRIVIAL   1
 
#define YYSTYPE_IS_DECLARED   1
 
#define YYLTYPE_IS_DECLARED   1
 
#define YYLTYPE_IS_TRIVIAL   1
 
#define YYSIZE_T   size_t
 
#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)
 
#define YY_(Msgid)   Msgid
 
#define YY_ATTRIBUTE(Spec)   /* empty */
 
#define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
 
#define YY_ATTRIBUTE_UNUSED   YY_ATTRIBUTE ((__unused__))
 
#define _Noreturn   YY_ATTRIBUTE ((__noreturn__))
 
#define YYUSE(E)   ((void) (E))
 
#define YY_INITIAL_VALUE(Value)   Value
 
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
 
#define YYSTACK_ALLOC   YYMALLOC
 
#define YYSTACK_FREE   YYFREE
 
#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM
 
#define YYMALLOC   malloc
 
#define YYFREE   free
 
#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)
 
#define YYSTACK_BYTES(N)
 
#define YYCOPY_NEEDED   1
 
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
 
#define YYCOPY(Dst, Src, Count)
 
#define YYFINAL   17
 
#define YYLAST   448
 
#define YYNTOKENS   109
 
#define YYNNTS   55
 
#define YYNRULES   146
 
#define YYNSTATES   257
 
#define YYUNDEFTOK   2
 
#define YYMAXUTOK   340
 
#define YYTRANSLATE(YYX)   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
#define YYPACT_NINF   -135
 
#define yypact_value_is_default(Yystate)   (!!((Yystate) == (-135)))
 
#define YYTABLE_NINF   -53
 
#define yytable_value_is_error(Yytable_value)   0
 
#define yyerrok   (yyerrstatus = 0)
 
#define yyclearin   (yychar = YYEMPTY)
 
#define YYEMPTY   (-2)
 
#define YYEOF   0
 
#define YYACCEPT   goto yyacceptlab
 
#define YYABORT   goto yyabortlab
 
#define YYERROR   goto yyerrorlab
 
#define YYRECOVERING()   (!!yyerrstatus)
 
#define YYBACKUP(Token, Value)
 
#define YYTERROR   1
 
#define YYERRCODE   256
 
#define YYLLOC_DEFAULT(Current, Rhs, N)
 
#define YYRHSLOC(Rhs, K)   ((Rhs)[K])
 
#define YYDPRINTF(Args)
 
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 
#define YY_STACK_PRINT(Bottom, Top)
 
#define YY_REDUCE_PRINT(Rule)
 
#define YYINITDEPTH   200
 
#define YYMAXDEPTH   10000
 
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
 

Typedefs

typedef union YYSTYPE YYSTYPE
 
typedef struct YYLTYPE YYLTYPE
 
typedef unsigned char yytype_uint8
 
typedef signed char yytype_int8
 
typedef unsigned short int yytype_uint16
 
typedef short int yytype_int16
 

Enumerations

enum  yytokentype {
  tINVALID = 258, tTRUE = 259, tFALSE = 260, tINTEGER = 261,
  tFLOAT = 262, tSTRING = 263, tIDENTIFIER = 264, tACCESS = 265,
  tAGENT = 266, tBREAK = 267, tCONTINUE = 268, tIDIV = 269,
  tIDIVA = 270, tDOMAIN = 271, tELSE = 272, tEQUIV = 273,
  tEXTERN = 274, tFOR = 275, tFUNCTION = 276, tHEADER = 277,
  tHTTP = 278, tIF = 279, tISVALID = 280, tMETA = 281,
  tNAME = 282, tPATH = 283, tRETURN = 284, tTYPEOF = 285,
  tUSE = 286, tUSER = 287, tVAR = 288, tWHILE = 289,
  tURL = 290, tDELETE = 291, tIN = 292, tLIB = 293,
  tNEW = 294, tNULL = 295, tTHIS = 296, tVOID = 297,
  tWITH = 298, tCASE = 299, tCATCH = 300, tCLASS = 301,
  tCONST = 302, tDEBUGGER = 303, tDEFAULT = 304, tDO = 305,
  tENUM = 306, tEXPORT = 307, tEXTENDS = 308, tFINALLY = 309,
  tIMPORT = 310, tPRIVATE = 311, tPUBLIC = 312, tSIZEOF = 313,
  tSTRUCT = 314, tSUPER = 315, tSWITCH = 316, tTHROW = 317,
  tTRY = 318, tEQ = 319, tLE = 320, tGE = 321,
  tNE = 322, tAND = 323, tOR = 324, tPLUSPLUS = 325,
  tMINUSMINUS = 326, tLSHIFT = 327, tRSSHIFT = 328, tRSZSHIFT = 329,
  tADDA = 330, tSUBA = 331, tMULA = 332, tDIVA = 333,
  tANDA = 334, tORA = 335, tXORA = 336, tREMA = 337,
  tLSHIFTA = 338, tRSSHIFTA = 339, tRSZSHIFTA = 340, tINVALID = 258,
  tTRUE = 259, tFALSE = 260, tINTEGER = 261, tFLOAT = 262,
  tSTRING = 263, tIDENTIFIER = 264, tACCESS = 265, tAGENT = 266,
  tBREAK = 267, tCONTINUE = 268, tIDIV = 269, tIDIVA = 270,
  tDOMAIN = 271, tELSE = 272, tEQUIV = 273, tEXTERN = 274,
  tFOR = 275, tFUNCTION = 276, tHEADER = 277, tHTTP = 278,
  tIF = 279, tISVALID = 280, tMETA = 281, tNAME = 282,
  tPATH = 283, tRETURN = 284, tTYPEOF = 285, tUSE = 286,
  tUSER = 287, tVAR = 288, tWHILE = 289, tURL = 290,
  tDELETE = 291, tIN = 292, tLIB = 293, tNEW = 294,
  tNULL = 295, tTHIS = 296, tVOID = 297, tWITH = 298,
  tCASE = 299, tCATCH = 300, tCLASS = 301, tCONST = 302,
  tDEBUGGER = 303, tDEFAULT = 304, tDO = 305, tENUM = 306,
  tEXPORT = 307, tEXTENDS = 308, tFINALLY = 309, tIMPORT = 310,
  tPRIVATE = 311, tPUBLIC = 312, tSIZEOF = 313, tSTRUCT = 314,
  tSUPER = 315, tSWITCH = 316, tTHROW = 317, tTRY = 318,
  tEQ = 319, tLE = 320, tGE = 321, tNE = 322,
  tAND = 323, tOR = 324, tPLUSPLUS = 325, tMINUSMINUS = 326,
  tLSHIFT = 327, tRSSHIFT = 328, tRSZSHIFT = 329, tADDA = 330,
  tSUBA = 331, tMULA = 332, tDIVA = 333, tANDA = 334,
  tORA = 335, tXORA = 336, tREMA = 337, tLSHIFTA = 338,
  tRSSHIFTA = 339, tRSZSHIFTA = 340
}
 

Functions

int ws_yy_parse (WsCompiler *compiler)
 
void yyerror (YYLTYPE *locp, WsCompiler *compiler, const char *msg)
 
void * malloc (YYSIZE_T)
 
void free (void *)
 
static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, WsCompiler *compiler)
 
int yyparse (WsCompiler *compiler)
 

Variables

static const yytype_uint8 yytranslate []
 
static const yytype_int16 yypact []
 
static const yytype_uint8 yydefact []
 
static const yytype_int16 yypgoto []
 
static const yytype_int16 yydefgoto []
 
static const yytype_int16 yytable []
 
static const yytype_int16 yycheck []
 
static const yytype_uint8 yystos []
 
static const yytype_uint8 yyr1 []
 
static const yytype_uint8 yyr2 []
 

Macro Definition Documentation

◆ _Noreturn

#define _Noreturn   YY_ATTRIBUTE ((__noreturn__))

Definition at line 438 of file wsgram.c.

◆ tACCESS

#define tACCESS   265

Definition at line 217 of file wsgram.c.

◆ tADDA

#define tADDA   330

Definition at line 282 of file wsgram.c.

Referenced by ws_expr_linearize(), ws_yy_lex(), and yyparse().

◆ tAGENT

#define tAGENT   266

Definition at line 218 of file wsgram.c.

◆ tAND

#define tAND   323

Definition at line 275 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tANDA

#define tANDA   334

Definition at line 286 of file wsgram.c.

Referenced by ws_expr_linearize(), ws_yy_lex(), and yyparse().

◆ tBREAK

#define tBREAK   267

Definition at line 219 of file wsgram.c.

◆ tCASE

#define tCASE   299

Definition at line 251 of file wsgram.c.

◆ tCATCH

#define tCATCH   300

Definition at line 252 of file wsgram.c.

◆ tCLASS

#define tCLASS   301

Definition at line 253 of file wsgram.c.

◆ tCONST

#define tCONST   302

Definition at line 254 of file wsgram.c.

◆ tCONTINUE

#define tCONTINUE   268

Definition at line 220 of file wsgram.c.

◆ tDEBUGGER

#define tDEBUGGER   303

Definition at line 255 of file wsgram.c.

◆ tDEFAULT

#define tDEFAULT   304

Definition at line 256 of file wsgram.c.

◆ tDELETE

#define tDELETE   291

Definition at line 243 of file wsgram.c.

◆ tDIVA

#define tDIVA   333

Definition at line 285 of file wsgram.c.

Referenced by ws_expr_linearize(), ws_yy_lex(), and yyparse().

◆ tDO

#define tDO   305

Definition at line 257 of file wsgram.c.

◆ tDOMAIN

#define tDOMAIN   271

Definition at line 223 of file wsgram.c.

◆ tELSE

#define tELSE   272

Definition at line 224 of file wsgram.c.

◆ tENUM

#define tENUM   306

Definition at line 258 of file wsgram.c.

◆ tEQ

#define tEQ   319

Definition at line 271 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tEQUIV

#define tEQUIV   273

Definition at line 225 of file wsgram.c.

◆ tEXPORT

#define tEXPORT   307

Definition at line 259 of file wsgram.c.

◆ tEXTENDS

#define tEXTENDS   308

Definition at line 260 of file wsgram.c.

◆ tEXTERN

#define tEXTERN   274

Definition at line 226 of file wsgram.c.

◆ tFALSE

#define tFALSE   260

Definition at line 212 of file wsgram.c.

◆ tFINALLY

#define tFINALLY   309

Definition at line 261 of file wsgram.c.

◆ tFLOAT

#define tFLOAT   262

Definition at line 214 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tFOR

#define tFOR   275

Definition at line 227 of file wsgram.c.

◆ tFUNCTION

#define tFUNCTION   276

Definition at line 228 of file wsgram.c.

◆ tGE

#define tGE   321

Definition at line 273 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tHEADER

#define tHEADER   277

Definition at line 229 of file wsgram.c.

◆ tHTTP

#define tHTTP   278

Definition at line 230 of file wsgram.c.

◆ tIDENTIFIER

#define tIDENTIFIER   264

Definition at line 216 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tIDIV

#define tIDIV   269

Definition at line 221 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tIDIVA

#define tIDIVA   270

Definition at line 222 of file wsgram.c.

Referenced by ws_expr_linearize(), ws_yy_lex(), and yyparse().

◆ tIF

#define tIF   279

Definition at line 231 of file wsgram.c.

◆ tIMPORT

#define tIMPORT   310

Definition at line 262 of file wsgram.c.

◆ tIN

#define tIN   292

Definition at line 244 of file wsgram.c.

◆ tINTEGER

#define tINTEGER   261

Definition at line 213 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tINVALID

#define tINVALID   258

Definition at line 210 of file wsgram.c.

◆ tISVALID

#define tISVALID   280

Definition at line 232 of file wsgram.c.

◆ tLE

#define tLE   320

Definition at line 272 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tLIB

#define tLIB   293

Definition at line 245 of file wsgram.c.

◆ tLSHIFT

#define tLSHIFT   327

Definition at line 279 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tLSHIFTA

#define tLSHIFTA   338

Definition at line 290 of file wsgram.c.

Referenced by ws_expr_linearize(), ws_yy_lex(), and yyparse().

◆ tMETA

#define tMETA   281

Definition at line 233 of file wsgram.c.

◆ tMINUSMINUS

#define tMINUSMINUS   326

Definition at line 278 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tMULA

#define tMULA   332

Definition at line 284 of file wsgram.c.

Referenced by ws_expr_linearize(), ws_yy_lex(), and yyparse().

◆ tNAME

#define tNAME   282

Definition at line 234 of file wsgram.c.

◆ tNE

#define tNE   322

Definition at line 274 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tNEW

#define tNEW   294

Definition at line 246 of file wsgram.c.

◆ tNULL

#define tNULL   295

Definition at line 247 of file wsgram.c.

◆ tOR

#define tOR   324

Definition at line 276 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tORA

#define tORA   335

Definition at line 287 of file wsgram.c.

Referenced by ws_expr_linearize(), ws_yy_lex(), and yyparse().

◆ tPATH

#define tPATH   283

Definition at line 235 of file wsgram.c.

◆ tPLUSPLUS

#define tPLUSPLUS   325

Definition at line 277 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tPRIVATE

#define tPRIVATE   311

Definition at line 263 of file wsgram.c.

◆ tPUBLIC

#define tPUBLIC   312

Definition at line 264 of file wsgram.c.

◆ tREMA

#define tREMA   337

Definition at line 289 of file wsgram.c.

Referenced by ws_expr_linearize(), ws_yy_lex(), and yyparse().

◆ tRETURN

#define tRETURN   284

Definition at line 236 of file wsgram.c.

◆ tRSSHIFT

#define tRSSHIFT   328

Definition at line 280 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tRSSHIFTA

#define tRSSHIFTA   339

Definition at line 291 of file wsgram.c.

Referenced by ws_expr_linearize(), ws_yy_lex(), and yyparse().

◆ tRSZSHIFT

#define tRSZSHIFT   329

Definition at line 281 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tRSZSHIFTA

#define tRSZSHIFTA   340

Definition at line 292 of file wsgram.c.

Referenced by ws_expr_linearize(), ws_yy_lex(), and yyparse().

◆ tSIZEOF

#define tSIZEOF   313

Definition at line 265 of file wsgram.c.

◆ tSTRING

#define tSTRING   263

Definition at line 215 of file wsgram.c.

Referenced by ws_yy_lex().

◆ tSTRUCT

#define tSTRUCT   314

Definition at line 266 of file wsgram.c.

◆ tSUBA

#define tSUBA   331

Definition at line 283 of file wsgram.c.

Referenced by ws_expr_linearize(), ws_yy_lex(), and yyparse().

◆ tSUPER

#define tSUPER   315

Definition at line 267 of file wsgram.c.

◆ tSWITCH

#define tSWITCH   316

Definition at line 268 of file wsgram.c.

◆ tTHIS

#define tTHIS   296

Definition at line 248 of file wsgram.c.

◆ tTHROW

#define tTHROW   317

Definition at line 269 of file wsgram.c.

◆ tTRUE

#define tTRUE   259

Definition at line 211 of file wsgram.c.

◆ tTRY

#define tTRY   318

Definition at line 270 of file wsgram.c.

◆ tTYPEOF

#define tTYPEOF   285

Definition at line 237 of file wsgram.c.

◆ tURL

#define tURL   290

Definition at line 242 of file wsgram.c.

◆ tUSE

#define tUSE   286

Definition at line 238 of file wsgram.c.

◆ tUSER

#define tUSER   287

Definition at line 239 of file wsgram.c.

◆ tVAR

#define tVAR   288

Definition at line 240 of file wsgram.c.

◆ tVOID

#define tVOID   297

Definition at line 249 of file wsgram.c.

◆ tWHILE

#define tWHILE   289

Definition at line 241 of file wsgram.c.

◆ tWITH

#define tWITH   298

Definition at line 250 of file wsgram.c.

◆ tXORA

#define tXORA   336

Definition at line 288 of file wsgram.c.

Referenced by ws_expr_linearize(), ws_yy_lex(), and yyparse().

◆ YY_

#define YY_ (   Msgid)    Msgid

Definition at line 411 of file wsgram.c.

Referenced by yyparse().

◆ YY_ATTRIBUTE

#define YY_ATTRIBUTE (   Spec)    /* empty */

Definition at line 421 of file wsgram.c.

◆ YY_ATTRIBUTE_PURE

#define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))

Definition at line 426 of file wsgram.c.

◆ YY_ATTRIBUTE_UNUSED

#define YY_ATTRIBUTE_UNUSED   YY_ATTRIBUTE ((__unused__))

Definition at line 430 of file wsgram.c.

◆ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

Definition at line 461 of file wsgram.c.

Referenced by yydestruct(), and yyparse().

◆ YY_IGNORE_MAYBE_UNINITIALIZED_END

#define YY_IGNORE_MAYBE_UNINITIALIZED_END

Definition at line 462 of file wsgram.c.

Referenced by yydestruct(), and yyparse().

◆ YY_INITIAL_VALUE

#define YY_INITIAL_VALUE (   Value)    Value

Definition at line 458 of file wsgram.c.

Referenced by yyparse().

◆ YY_NULLPTR

#define YY_NULLPTR   0

Definition at line 95 of file wsgram.c.

◆ YY_REDUCE_PRINT

#define YY_REDUCE_PRINT (   Rule)

Definition at line 1244 of file wsgram.c.

Referenced by yyparse().

◆ YY_STACK_PRINT

#define YY_STACK_PRINT (   Bottom,
  Top 
)

Definition at line 1243 of file wsgram.c.

Referenced by yyparse().

◆ YY_SYMBOL_PRINT

#define YY_SYMBOL_PRINT (   Title,
  Type,
  Value,
  Location 
)

Definition at line 1242 of file wsgram.c.

Referenced by yydestruct(), and yyparse().

◆ YY_WS_YY_Y_TAB_H_INCLUDED

#define YY_WS_YY_Y_TAB_H_INCLUDED

Definition at line 110 of file wsgram.c.

◆ YYABORT

#define YYABORT   goto yyabortlab

Definition at line 1020 of file wsgram.c.

Referenced by yyparse().

◆ YYACCEPT

#define YYACCEPT   goto yyacceptlab

Definition at line 1019 of file wsgram.c.

Referenced by yyparse().

◆ YYBACKUP

#define YYBACKUP (   Token,
  Value 
)
Value:
do \
if (yychar == YYEMPTY) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (&yylloc, compiler, YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
#define YYEMPTY
Definition: wsgram.c:1016
#define YY_(Msgid)
Definition: wsgram.c:411

Definition at line 1026 of file wsgram.c.

◆ YYBISON

#define YYBISON   1

Definition at line 44 of file wsgram.c.

◆ YYBISON_VERSION

#define YYBISON_VERSION   "3.0.5"

Definition at line 47 of file wsgram.c.

◆ yyclearin

#define yyclearin   (yychar = YYEMPTY)

Definition at line 1015 of file wsgram.c.

◆ YYCOPY

#define YYCOPY (   Dst,
  Src,
  Count 
)
Value:
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
while (0)

Definition at line 587 of file wsgram.c.

◆ YYCOPY_NEEDED

#define YYCOPY_NEEDED   1

Definition at line 559 of file wsgram.c.

◆ yydebug

#define yydebug   ws_yy_debug

Definition at line 66 of file wsgram.c.

◆ YYDEBUG

#define YYDEBUG   0

Definition at line 113 of file wsgram.c.

◆ YYDPRINTF

#define YYDPRINTF (   Args)

Definition at line 1241 of file wsgram.c.

Referenced by yyparse().

◆ YYEMPTY

#define YYEMPTY   (-2)

Definition at line 1016 of file wsgram.c.

Referenced by yyparse().

◆ YYEOF

#define YYEOF   0

Definition at line 1017 of file wsgram.c.

Referenced by yyparse().

◆ YYERRCODE

#define YYERRCODE   256

Definition at line 1045 of file wsgram.c.

◆ yyerrok

#define yyerrok   (yyerrstatus = 0)

Definition at line 1014 of file wsgram.c.

◆ yyerror

#define yyerror   ws_yy_error

Definition at line 65 of file wsgram.c.

Referenced by yyparse().

◆ YYERROR

#define YYERROR   goto yyerrorlab

Definition at line 1021 of file wsgram.c.

◆ YYERROR_VERBOSE

#define YYERROR_VERBOSE   0

Definition at line 104 of file wsgram.c.

◆ YYFINAL

#define YYFINAL   17

Definition at line 600 of file wsgram.c.

Referenced by yyparse().

◆ YYFREE

#define YYFREE   free

Definition at line 528 of file wsgram.c.

◆ YYINITDEPTH

#define YYINITDEPTH   200

Definition at line 1250 of file wsgram.c.

Referenced by yyparse().

◆ YYLAST

#define YYLAST   448

Definition at line 602 of file wsgram.c.

Referenced by yyparse().

◆ yylex

#define yylex   ws_yy_lex

Definition at line 64 of file wsgram.c.

Referenced by yyparse().

◆ YYLLOC_DEFAULT

#define YYLLOC_DEFAULT (   Current,
  Rhs,
  N 
)
Value:
do \
if (N) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (0)
#define N(n)
Definition: wslexer.c:151
#define YYRHSLOC(Rhs, K)
Definition: wsgram.c:1072

Definition at line 1053 of file wsgram.c.

Referenced by yyparse().

◆ YYLTYPE_IS_DECLARED

#define YYLTYPE_IS_DECLARED   1

Definition at line 334 of file wsgram.c.

◆ YYLTYPE_IS_TRIVIAL

#define YYLTYPE_IS_TRIVIAL   1

Definition at line 335 of file wsgram.c.

◆ YYMALLOC

#define YYMALLOC   malloc

Definition at line 522 of file wsgram.c.

◆ YYMAXDEPTH

#define YYMAXDEPTH   10000

Definition at line 1261 of file wsgram.c.

Referenced by yyparse().

◆ YYMAXUTOK

#define YYMAXUTOK   340

Definition at line 616 of file wsgram.c.

◆ yynerrs

#define yynerrs   ws_yy_nerrs

Definition at line 67 of file wsgram.c.

Referenced by yyparse().

◆ YYNNTS

#define YYNNTS   55

Definition at line 607 of file wsgram.c.

◆ YYNRULES

#define YYNRULES   146

Definition at line 609 of file wsgram.c.

◆ YYNSTATES

#define YYNSTATES   257

Definition at line 611 of file wsgram.c.

◆ YYNTOKENS

#define YYNTOKENS   109

Definition at line 605 of file wsgram.c.

Referenced by yyparse().

◆ YYPACT_NINF

#define YYPACT_NINF   -135

Definition at line 743 of file wsgram.c.

◆ yypact_value_is_default

#define yypact_value_is_default (   Yystate)    (!!((Yystate) == (-135)))

Definition at line 745 of file wsgram.c.

Referenced by yyparse().

◆ yyparse

#define yyparse   ws_yy_parse

Definition at line 63 of file wsgram.c.

◆ YYPOPSTACK

#define YYPOPSTACK (   N)    (yyvsp -= (N), yyssp -= (N), yylsp -= (N))

Referenced by yyparse().

◆ YYPULL

#define YYPULL   1

Definition at line 59 of file wsgram.c.

◆ YYPURE

#define YYPURE   1

Definition at line 53 of file wsgram.c.

◆ YYPUSH

#define YYPUSH   0

Definition at line 56 of file wsgram.c.

◆ YYRECOVERING

#define YYRECOVERING ( )    (!!yyerrstatus)

Definition at line 1024 of file wsgram.c.

◆ YYRHSLOC

#define YYRHSLOC (   Rhs,
 
)    ((Rhs)[K])

Definition at line 1072 of file wsgram.c.

◆ YYSIZE_MAXIMUM

#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)

Definition at line 401 of file wsgram.c.

◆ YYSIZE_T

#define YYSIZE_T   size_t

Definition at line 395 of file wsgram.c.

Referenced by yyparse().

◆ YYSKELETON_NAME

#define YYSKELETON_NAME   "yacc.c"

Definition at line 50 of file wsgram.c.

◆ YYSTACK_ALLOC

#define YYSTACK_ALLOC   YYMALLOC

Definition at line 508 of file wsgram.c.

Referenced by yyparse().

◆ YYSTACK_ALLOC_MAXIMUM

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Definition at line 511 of file wsgram.c.

◆ YYSTACK_BYTES

#define YYSTACK_BYTES (   N)
Value:
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
union YYSTYPE YYSTYPE
Definition: wsgram.c:319
#define YYSTACK_GAP_MAXIMUM
Definition: wsgram.c:551
#define N(n)
Definition: wslexer.c:151
short int yytype_int16
Definition: wsgram.c:385

Definition at line 555 of file wsgram.c.

Referenced by yyparse().

◆ YYSTACK_FREE

#define YYSTACK_FREE   YYFREE

Definition at line 509 of file wsgram.c.

Referenced by yyparse().

◆ YYSTACK_GAP_MAXIMUM

#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)

Definition at line 551 of file wsgram.c.

◆ YYSTACK_RELOCATE

#define YYSTACK_RELOCATE (   Stack_alloc,
  Stack 
)
Value:
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (0)
#define YYSTACK_GAP_MAXIMUM
Definition: wsgram.c:551

Definition at line 566 of file wsgram.c.

Referenced by yyparse().

◆ YYSTYPE_IS_DECLARED

#define YYSTYPE_IS_DECLARED   1

Definition at line 321 of file wsgram.c.

◆ YYSTYPE_IS_TRIVIAL

#define YYSTYPE_IS_TRIVIAL   1

Definition at line 320 of file wsgram.c.

◆ YYTABLE_NINF

#define YYTABLE_NINF   -53

Definition at line 748 of file wsgram.c.

◆ yytable_value_is_error

#define yytable_value_is_error (   Yytable_value)    0

Definition at line 750 of file wsgram.c.

Referenced by yyparse().

◆ YYTERROR

#define YYTERROR   1

Definition at line 1044 of file wsgram.c.

Referenced by yyparse().

◆ YYTOKENTYPE

#define YYTOKENTYPE

Definition at line 121 of file wsgram.c.

◆ YYTRANSLATE

#define YYTRANSLATE (   YYX)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

Definition at line 618 of file wsgram.c.

Referenced by yyparse().

◆ YYUNDEFTOK

#define YYUNDEFTOK   2

Definition at line 615 of file wsgram.c.

◆ YYUSE

#define YYUSE (   E)    ((void) (E))

Definition at line 444 of file wsgram.c.

Referenced by yydestruct().

Typedef Documentation

◆ YYLTYPE

typedef struct YYLTYPE YYLTYPE

Definition at line 326 of file wsgram.c.

◆ YYSTYPE

typedef union YYSTYPE YYSTYPE

Definition at line 319 of file wsgram.c.

◆ yytype_int16

typedef short int yytype_int16

Definition at line 385 of file wsgram.c.

◆ yytype_int8

typedef signed char yytype_int8

Definition at line 373 of file wsgram.c.

◆ yytype_uint16

typedef unsigned short int yytype_uint16

Definition at line 379 of file wsgram.c.

◆ yytype_uint8

typedef unsigned char yytype_uint8

Definition at line 367 of file wsgram.c.

Enumeration Type Documentation

◆ yytokentype

Enumerator
tINVALID 
tTRUE 
tFALSE 
tINTEGER 
tFLOAT 
tSTRING 
tIDENTIFIER 
tACCESS 
tAGENT 
tBREAK 
tCONTINUE 
tIDIV 
tIDIVA 
tDOMAIN 
tELSE 
tEQUIV 
tEXTERN 
tFOR 
tFUNCTION 
tHEADER 
tHTTP 
tIF 
tISVALID 
tMETA 
tNAME 
tPATH 
tRETURN 
tTYPEOF 
tUSE 
tUSER 
tVAR 
tWHILE 
tURL 
tDELETE 
tIN 
tLIB 
tNEW 
tNULL 
tTHIS 
tVOID 
tWITH 
tCASE 
tCATCH 
tCLASS 
tCONST 
tDEBUGGER 
tDEFAULT 
tDO 
tENUM 
tEXPORT 
tEXTENDS 
tFINALLY 
tIMPORT 
tPRIVATE 
tPUBLIC 
tSIZEOF 
tSTRUCT 
tSUPER 
tSWITCH 
tTHROW 
tTRY 
tEQ 
tLE 
tGE 
tNE 
tAND 
tOR 
tPLUSPLUS 
tMINUSMINUS 
tLSHIFT 
tRSSHIFT 
tRSZSHIFT 
tADDA 
tSUBA 
tMULA 
tDIVA 
tANDA 
tORA 
tXORA 
tREMA 
tLSHIFTA 
tRSSHIFTA 
tRSZSHIFTA 
tINVALID 
tTRUE 
tFALSE 
tINTEGER 
tFLOAT 
tSTRING 
tIDENTIFIER 
tACCESS 
tAGENT 
tBREAK 
tCONTINUE 
tIDIV 
tIDIVA 
tDOMAIN 
tELSE 
tEQUIV 
tEXTERN 
tFOR 
tFUNCTION 
tHEADER 
tHTTP 
tIF 
tISVALID 
tMETA 
tNAME 
tPATH 
tRETURN 
tTYPEOF 
tUSE 
tUSER 
tVAR 
tWHILE 
tURL 
tDELETE 
tIN 
tLIB 
tNEW 
tNULL 
tTHIS 
tVOID 
tWITH 
tCASE 
tCATCH 
tCLASS 
tCONST 
tDEBUGGER 
tDEFAULT 
tDO 
tENUM 
tEXPORT 
tEXTENDS 
tFINALLY 
tIMPORT 
tPRIVATE 
tPUBLIC 
tSIZEOF 
tSTRUCT 
tSUPER 
tSWITCH 
tTHROW 
tTRY 
tEQ 
tLE 
tGE 
tNE 
tAND 
tOR 
tPLUSPLUS 
tMINUSMINUS 
tLSHIFT 
tRSSHIFT 
tRSZSHIFT 
tADDA 
tSUBA 
tMULA 
tDIVA 
tANDA 
tORA 
tXORA 
tREMA 
tLSHIFTA 
tRSSHIFTA 
tRSZSHIFTA 

Definition at line 122 of file wsgram.c.

123  {
124  tINVALID = 258,
125  tTRUE = 259,
126  tFALSE = 260,
127  tINTEGER = 261,
128  tFLOAT = 262,
129  tSTRING = 263,
130  tIDENTIFIER = 264,
131  tACCESS = 265,
132  tAGENT = 266,
133  tBREAK = 267,
134  tCONTINUE = 268,
135  tIDIV = 269,
136  tIDIVA = 270,
137  tDOMAIN = 271,
138  tELSE = 272,
139  tEQUIV = 273,
140  tEXTERN = 274,
141  tFOR = 275,
142  tFUNCTION = 276,
143  tHEADER = 277,
144  tHTTP = 278,
145  tIF = 279,
146  tISVALID = 280,
147  tMETA = 281,
148  tNAME = 282,
149  tPATH = 283,
150  tRETURN = 284,
151  tTYPEOF = 285,
152  tUSE = 286,
153  tUSER = 287,
154  tVAR = 288,
155  tWHILE = 289,
156  tURL = 290,
157  tDELETE = 291,
158  tIN = 292,
159  tLIB = 293,
160  tNEW = 294,
161  tNULL = 295,
162  tTHIS = 296,
163  tVOID = 297,
164  tWITH = 298,
165  tCASE = 299,
166  tCATCH = 300,
167  tCLASS = 301,
168  tCONST = 302,
169  tDEBUGGER = 303,
170  tDEFAULT = 304,
171  tDO = 305,
172  tENUM = 306,
173  tEXPORT = 307,
174  tEXTENDS = 308,
175  tFINALLY = 309,
176  tIMPORT = 310,
177  tPRIVATE = 311,
178  tPUBLIC = 312,
179  tSIZEOF = 313,
180  tSTRUCT = 314,
181  tSUPER = 315,
182  tSWITCH = 316,
183  tTHROW = 317,
184  tTRY = 318,
185  tEQ = 319,
186  tLE = 320,
187  tGE = 321,
188  tNE = 322,
189  tAND = 323,
190  tOR = 324,
191  tPLUSPLUS = 325,
192  tMINUSMINUS = 326,
193  tLSHIFT = 327,
194  tRSSHIFT = 328,
195  tRSZSHIFT = 329,
196  tADDA = 330,
197  tSUBA = 331,
198  tMULA = 332,
199  tDIVA = 333,
200  tANDA = 334,
201  tORA = 335,
202  tXORA = 336,
203  tREMA = 337,
204  tLSHIFTA = 338,
205  tRSSHIFTA = 339,
206  tRSZSHIFTA = 340
207  };
#define tDELETE
Definition: wsgram.c:243
#define tTHROW
Definition: wsgram.c:269
#define tVAR
Definition: wsgram.c:240
#define tIMPORT
Definition: wsgram.c:262
#define tSWITCH
Definition: wsgram.c:268
#define tNULL
Definition: wsgram.c:247
#define tFOR
Definition: wsgram.c:227
#define tFALSE
Definition: wsgram.c:212
#define tEXTENDS
Definition: wsgram.c:260
#define tPLUSPLUS
Definition: wsgram.c:277
#define tDIVA
Definition: wsgram.c:285
#define tRSSHIFT
Definition: wsgram.c:280
#define tLIB
Definition: wsgram.c:245
#define tRSZSHIFTA
Definition: wsgram.c:292
#define tUSE
Definition: wsgram.c:238
#define tPUBLIC
Definition: wsgram.c:264
#define tAGENT
Definition: wsgram.c:218
#define tGE
Definition: wsgram.c:273
#define tAND
Definition: wsgram.c:275
#define tDO
Definition: wsgram.c:257
#define tACCESS
Definition: wsgram.c:217
#define tCATCH
Definition: wsgram.c:252
#define tTYPEOF
Definition: wsgram.c:237
#define tDOMAIN
Definition: wsgram.c:223
#define tPATH
Definition: wsgram.c:235
#define tWITH
Definition: wsgram.c:250
#define tRSSHIFTA
Definition: wsgram.c:291
#define tIN
Definition: wsgram.c:244
#define tREMA
Definition: wsgram.c:289
#define tEQUIV
Definition: wsgram.c:225
#define tLSHIFTA
Definition: wsgram.c:290
#define tOR
Definition: wsgram.c:276
#define tIDIVA
Definition: wsgram.c:222
#define tIF
Definition: wsgram.c:231
#define tNAME
Definition: wsgram.c:234
#define tMETA
Definition: wsgram.c:233
#define tWHILE
Definition: wsgram.c:241
#define tISVALID
Definition: wsgram.c:232
#define tFLOAT
Definition: wsgram.c:214
#define tNEW
Definition: wsgram.c:246
#define tTRUE
Definition: wsgram.c:211
#define tEXTERN
Definition: wsgram.c:226
#define tPRIVATE
Definition: wsgram.c:263
#define tURL
Definition: wsgram.c:242
#define tBREAK
Definition: wsgram.c:219
#define tEQ
Definition: wsgram.c:271
#define tMULA
Definition: wsgram.c:284
#define tNE
Definition: wsgram.c:274
#define tSUBA
Definition: wsgram.c:283
#define tINVALID
Definition: wsgram.c:210
#define tHEADER
Definition: wsgram.c:229
#define tRETURN
Definition: wsgram.c:236
#define tELSE
Definition: wsgram.c:224
#define tCONST
Definition: wsgram.c:254
#define tENUM
Definition: wsgram.c:258
#define tLE
Definition: wsgram.c:272
#define tTRY
Definition: wsgram.c:270
#define tMINUSMINUS
Definition: wsgram.c:278
#define tSIZEOF
Definition: wsgram.c:265
#define tFUNCTION
Definition: wsgram.c:228
#define tINTEGER
Definition: wsgram.c:213
#define tUSER
Definition: wsgram.c:239
#define tCLASS
Definition: wsgram.c:253
#define tXORA
Definition: wsgram.c:288
#define tORA
Definition: wsgram.c:287
#define tLSHIFT
Definition: wsgram.c:279
#define tHTTP
Definition: wsgram.c:230
#define tFINALLY
Definition: wsgram.c:261
#define tIDENTIFIER
Definition: wsgram.c:216
#define tVOID
Definition: wsgram.c:249
#define tEXPORT
Definition: wsgram.c:259
#define tIDIV
Definition: wsgram.c:221
#define tRSZSHIFT
Definition: wsgram.c:281
#define tADDA
Definition: wsgram.c:282
#define tANDA
Definition: wsgram.c:286
#define tDEBUGGER
Definition: wsgram.c:255
#define tDEFAULT
Definition: wsgram.c:256
#define tSTRUCT
Definition: wsgram.c:266
#define tCONTINUE
Definition: wsgram.c:220
#define tTHIS
Definition: wsgram.c:248
#define tSUPER
Definition: wsgram.c:267
#define tCASE
Definition: wsgram.c:251
#define tSTRING
Definition: wsgram.c:215

Function Documentation

◆ free()

◆ malloc()

◆ ws_yy_parse()

int ws_yy_parse ( WsCompiler compiler)

Referenced by compile_stream().

◆ yydestruct()

static void yydestruct ( const char *  yymsg,
int  yytype,
YYSTYPE yyvaluep,
YYLTYPE yylocationp,
WsCompiler compiler 
)
static

Definition at line 1493 of file wsgram.c.

References YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN, YY_IGNORE_MAYBE_UNINITIALIZED_END, YY_SYMBOL_PRINT, and YYUSE.

Referenced by yyparse().

1494 {
1495  YYUSE (yyvaluep);
1496  YYUSE (yylocationp);
1497  YYUSE (compiler);
1498  if (!yymsg)
1499  yymsg = "Deleting";
1500  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1501 
1503  YYUSE (yytype);
1505 }
#define YYUSE(E)
Definition: wsgram.c:444
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
Definition: wsgram.c:1242
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
Definition: wsgram.c:461
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
Definition: wsgram.c:462

◆ yyerror()

void yyerror ( YYLTYPE locp,
WsCompiler compiler,
const char *  msg 
)

Definition at line 2812 of file wsgram.c.

References WsCompilerRec::input_name, WsCompilerRec::linenum, and msg.

2813 {
2814 #if WS_DEBUG
2815  fprintf(stderr, "*** %s:%ld: wsc: %s - this msg will be removed ***\n",
2816  global_compiler->input_name, global_compiler->linenum, msg);
2817 #endif /* WS_DEBUG */
2818 }
static XMLRPCDocument * msg
Definition: test_xmlrpc.c:86

◆ yyparse()

int yyparse ( WsCompiler compiler)

Definition at line 1515 of file wsgram.c.

References WsCompilerRec::bc, YYSTYPE::boolean, YYSTYPE::expr, WsStatementRec::first_line, YYSTYPE::list, YYSTYPE::meta_body, WsCompilerParamsRec::meta_http_equiv_cb, WsCompilerParamsRec::meta_http_equiv_cb_context, WsCompilerParamsRec::meta_name_cb, WsCompilerParamsRec::meta_name_cb_context, name, WsCompilerRec::params, WsCompilerRec::pool_stree, YYSTYPE::stmt, tADDA, tANDA, tDIVA, tIDIVA, tLSHIFTA, tMULA, tORA, tREMA, tRSSHIFTA, tRSZSHIFTA, tSUBA, tXORA, WsFunctionHashRec::usage_count, YYSTYPE::vardec, WS_ASM_ADD, WS_ASM_B_AND, WS_ASM_B_LSHIFT, WS_ASM_B_NOT, WS_ASM_B_OR, WS_ASM_B_RSSHIFT, WS_ASM_B_RSZSHIFT, WS_ASM_B_XOR, WS_ASM_DIV, WS_ASM_EQ, WS_ASM_GE, WS_ASM_GT, WS_ASM_IDIV, WS_ASM_ISVALID, WS_ASM_LE, WS_ASM_LT, WS_ASM_MUL, WS_ASM_NE, WS_ASM_NOT, WS_ASM_REM, WS_ASM_SCAND, WS_ASM_SCOR, WS_ASM_SUB, WS_ASM_TYPEOF, WS_ASM_UMINUS, ws_bc_add_pragma_access_domain(), ws_bc_add_pragma_access_path(), ws_bc_add_pragma_user_agent_property(), ws_bc_add_pragma_user_agent_property_and_scheme(), ws_error_memory(), ws_error_syntax(), ws_expr_assign(), ws_expr_binary(), ws_expr_call(), ws_expr_comma(), ws_expr_conditional(), ws_expr_const_false(), ws_expr_const_float(), ws_expr_const_integer(), ws_expr_const_invalid(), ws_expr_const_string(), ws_expr_const_true(), ws_expr_logical(), ws_expr_postfix_var(), ws_expr_symbol(), ws_expr_unary(), ws_expr_unary_var(), ws_f_strdup(), WS_FALSE, ws_formal_parameter(), ws_function(), ws_function_hash(), ws_lexer_free_block(), ws_lexer_free_utf8(), ws_list_append(), ws_list_new(), ws_pragma_meta_body(), ws_pragma_meta_body_free(), ws_pragma_use(), ws_stmt_block(), ws_stmt_break(), ws_stmt_continue(), ws_stmt_empty(), ws_stmt_expr(), ws_stmt_for(), ws_stmt_if(), ws_stmt_return(), ws_stmt_variable(), ws_stmt_while(), ws_strdup(), WS_TRUE, ws_variable_declaration(), YY_, YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN, YY_IGNORE_MAYBE_UNINITIALIZED_END, YY_INITIAL_VALUE, YY_REDUCE_PRINT, YY_STACK_PRINT, YY_SYMBOL_PRINT, YYABORT, YYACCEPT, yycheck, yydefact, yydefgoto, yydestruct(), YYDPRINTF, YYEMPTY, YYEOF, yyerror, YYFINAL, YYINITDEPTH, YYLAST, yylex, YYLLOC_DEFAULT, yyalloc::yyls_alloc, YYMAXDEPTH, yynerrs, YYNTOKENS, yypact, yypact_value_is_default, yypgoto, YYPOPSTACK, yyr1, yyr2, YYSIZE_T, yyalloc::yyss_alloc, YYSTACK_ALLOC, YYSTACK_BYTES, YYSTACK_FREE, YYSTACK_RELOCATE, yystos, yytable, yytable_value_is_error, YYTERROR, YYTRANSLATE, and yyalloc::yyvs_alloc.

1516 {
1517 /* The lookahead symbol. */
1518 int yychar;
1519 
1520 
1521 /* The semantic value of the lookahead symbol. */
1522 /* Default value used for initialization, for pacifying older GCCs
1523  or non-GCC compilers. */
1524 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
1525 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
1526 
1527 /* Location data for the lookahead symbol. */
1528 static YYLTYPE yyloc_default
1529 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1530  = { 1, 1, 1, 1 }
1531 # endif
1532 ;
1533 YYLTYPE yylloc = yyloc_default;
1534 
1535  /* Number of syntax errors so far. */
1536  int yynerrs;
1537 
1538  int yystate;
1539  /* Number of tokens to shift before error messages enabled. */
1540  int yyerrstatus;
1541 
1542  /* The stacks and their tools:
1543  'yyss': related to states.
1544  'yyvs': related to semantic values.
1545  'yyls': related to locations.
1546 
1547  Refer to the stacks through separate pointers, to allow yyoverflow
1548  to reallocate them elsewhere. */
1549 
1550  /* The state stack. */
1551  yytype_int16 yyssa[YYINITDEPTH];
1552  yytype_int16 *yyss;
1553  yytype_int16 *yyssp;
1554 
1555  /* The semantic value stack. */
1556  YYSTYPE yyvsa[YYINITDEPTH];
1557  YYSTYPE *yyvs;
1558  YYSTYPE *yyvsp;
1559 
1560  /* The location stack. */
1561  YYLTYPE yylsa[YYINITDEPTH];
1562  YYLTYPE *yyls;
1563  YYLTYPE *yylsp;
1564 
1565  /* The locations where the error started and ended. */
1566  YYLTYPE yyerror_range[3];
1567 
1568  YYSIZE_T yystacksize;
1569 
1570  int yyn;
1571  int yyresult;
1572  /* Lookahead token as an internal (translated) token number. */
1573  int yytoken = 0;
1574  /* The variables used to return semantic value and location from the
1575  action routines. */
1576  YYSTYPE yyval;
1577  YYLTYPE yyloc;
1578 
1579 #if YYERROR_VERBOSE
1580  /* Buffer for error messages, and its allocated size. */
1581  char yymsgbuf[128];
1582  char *yymsg = yymsgbuf;
1583  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1584 #endif
1585 
1586 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
1587 
1588  /* The number of symbols on the RHS of the reduced rule.
1589  Keep to zero when no symbol should be popped. */
1590  int yylen = 0;
1591 
1592  yyssp = yyss = yyssa;
1593  yyvsp = yyvs = yyvsa;
1594  yylsp = yyls = yylsa;
1595  yystacksize = YYINITDEPTH;
1596 
1597  YYDPRINTF ((stderr, "Starting parse\n"));
1598 
1599  yystate = 0;
1600  yyerrstatus = 0;
1601  yynerrs = 0;
1602  yychar = YYEMPTY; /* Cause a token to be read. */
1603  yylsp[0] = yylloc;
1604  goto yysetstate;
1605 
1606 /*------------------------------------------------------------.
1607 | yynewstate -- Push a new state, which is found in yystate. |
1608 `------------------------------------------------------------*/
1609  yynewstate:
1610  /* In all cases, when you get here, the value and location stacks
1611  have just been pushed. So pushing a state here evens the stacks. */
1612  yyssp++;
1613 
1614  yysetstate:
1615  *yyssp = yystate;
1616 
1617  if (yyss + yystacksize - 1 <= yyssp)
1618  {
1619  /* Get the current used size of the three stacks, in elements. */
1620  YYSIZE_T yysize = yyssp - yyss + 1;
1621 
1622 #ifdef yyoverflow
1623  {
1624  /* Give user a chance to reallocate the stack. Use copies of
1625  these so that the &'s don't force the real ones into
1626  memory. */
1627  YYSTYPE *yyvs1 = yyvs;
1628  yytype_int16 *yyss1 = yyss;
1629  YYLTYPE *yyls1 = yyls;
1630 
1631  /* Each stack pointer address is followed by the size of the
1632  data in use in that stack, in bytes. This used to be a
1633  conditional around just the two extra args, but that might
1634  be undefined if yyoverflow is a macro. */
1635  yyoverflow (YY_("memory exhausted"),
1636  &yyss1, yysize * sizeof (*yyssp),
1637  &yyvs1, yysize * sizeof (*yyvsp),
1638  &yyls1, yysize * sizeof (*yylsp),
1639  &yystacksize);
1640 
1641  yyls = yyls1;
1642  yyss = yyss1;
1643  yyvs = yyvs1;
1644  }
1645 #else /* no yyoverflow */
1646 # ifndef YYSTACK_RELOCATE
1647  goto yyexhaustedlab;
1648 # else
1649  /* Extend the stack our own way. */
1650  if (YYMAXDEPTH <= yystacksize)
1651  goto yyexhaustedlab;
1652  yystacksize *= 2;
1653  if (YYMAXDEPTH < yystacksize)
1654  yystacksize = YYMAXDEPTH;
1655 
1656  {
1657  yytype_int16 *yyss1 = yyss;
1658  union yyalloc *yyptr =
1659  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1660  if (! yyptr)
1661  goto yyexhaustedlab;
1662  YYSTACK_RELOCATE (yyss_alloc, yyss);
1663  YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1664  YYSTACK_RELOCATE (yyls_alloc, yyls);
1665 # undef YYSTACK_RELOCATE
1666  if (yyss1 != yyssa)
1667  YYSTACK_FREE (yyss1);
1668  }
1669 # endif
1670 #endif /* no yyoverflow */
1671 
1672  yyssp = yyss + yysize - 1;
1673  yyvsp = yyvs + yysize - 1;
1674  yylsp = yyls + yysize - 1;
1675 
1676  YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1677  (unsigned long int) yystacksize));
1678 
1679  if (yyss + yystacksize - 1 <= yyssp)
1680  YYABORT;
1681  }
1682 
1683  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1684 
1685  if (yystate == YYFINAL)
1686  YYACCEPT;
1687 
1688  goto yybackup;
1689 
1690 /*-----------.
1691 | yybackup. |
1692 `-----------*/
1693 yybackup:
1694 
1695  /* Do appropriate processing given the current state. Read a
1696  lookahead token if we need one and don't already have one. */
1697 
1698  /* First try to decide what to do without reference to lookahead token. */
1699  yyn = yypact[yystate];
1700  if (yypact_value_is_default (yyn))
1701  goto yydefault;
1702 
1703  /* Not known => get a lookahead token if don't already have one. */
1704 
1705  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1706  if (yychar == YYEMPTY)
1707  {
1708  YYDPRINTF ((stderr, "Reading a token: "));
1709  yychar = yylex (&yylval, &yylloc, compiler);
1710  }
1711 
1712  if (yychar <= YYEOF)
1713  {
1714  yychar = yytoken = YYEOF;
1715  YYDPRINTF ((stderr, "Now at end of input.\n"));
1716  }
1717  else
1718  {
1719  yytoken = YYTRANSLATE (yychar);
1720  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1721  }
1722 
1723  /* If the proper action on seeing token YYTOKEN is to reduce or to
1724  detect an error, take that action. */
1725  yyn += yytoken;
1726  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1727  goto yydefault;
1728  yyn = yytable[yyn];
1729  if (yyn <= 0)
1730  {
1731  if (yytable_value_is_error (yyn))
1732  goto yyerrlab;
1733  yyn = -yyn;
1734  goto yyreduce;
1735  }
1736 
1737  /* Count tokens shifted since error; after three, turn off error
1738  status. */
1739  if (yyerrstatus)
1740  yyerrstatus--;
1741 
1742  /* Shift the lookahead token. */
1743  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1744 
1745  /* Discard the shifted token. */
1746  yychar = YYEMPTY;
1747 
1748  yystate = yyn;
1750  *++yyvsp = yylval;
1752  *++yylsp = yylloc;
1753  goto yynewstate;
1754 
1755 
1756 /*-----------------------------------------------------------.
1757 | yydefault -- do the default action for the current state. |
1758 `-----------------------------------------------------------*/
1759 yydefault:
1760  yyn = yydefact[yystate];
1761  if (yyn == 0)
1762  goto yyerrlab;
1763  goto yyreduce;
1764 
1765 
1766 /*-----------------------------.
1767 | yyreduce -- Do a reduction. |
1768 `-----------------------------*/
1769 yyreduce:
1770  /* yyn is the number of a rule to reduce with. */
1771  yylen = yyr2[yyn];
1772 
1773  /* If YYLEN is nonzero, implement the default value of the action:
1774  '$$ = $1'.
1775 
1776  Otherwise, the following line sets YYVAL to garbage.
1777  This behavior is undocumented and Bison
1778  users should not rely upon it. Assigning to YYVAL
1779  unconditionally makes the parser a bit smaller, and it avoids a
1780  GCC warning that YYVAL may be used uninitialized. */
1781  yyval = yyvsp[1-yylen];
1782 
1783  /* Default location. */
1784  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
1785  yyerror_range[1] = yyloc;
1786  YY_REDUCE_PRINT (yyn);
1787  switch (yyn)
1788  {
1789  case 4:
1790 #line 128 "wmlscript/wsgram.y" /* yacc.c:1648 */
1791  { ws_error_syntax(compiler, (yylsp[0]).first_line); }
1792 #line 1793 "y.tab.c" /* yacc.c:1648 */
1793  break;
1794 
1795  case 8:
1796 #line 141 "wmlscript/wsgram.y" /* yacc.c:1648 */
1797  { ws_error_syntax(compiler, (yylsp[0]).first_line); }
1798 #line 1799 "y.tab.c" /* yacc.c:1648 */
1799  break;
1800 
1801  case 12:
1802 #line 152 "wmlscript/wsgram.y" /* yacc.c:1648 */
1803  { ws_pragma_use(compiler, (yylsp[-1]).first_line, (yyvsp[-1].identifier), (yyvsp[0].string)); }
1804 #line 1805 "y.tab.c" /* yacc.c:1648 */
1805  break;
1806 
1807  case 14:
1808 #line 161 "wmlscript/wsgram.y" /* yacc.c:1648 */
1809  {
1810  /* Pass this to the byte-code */
1811  if (!ws_bc_add_pragma_access_domain(compiler->bc, (yyvsp[0].string)->data,
1812  (yyvsp[0].string)->len))
1813  ws_error_memory(compiler);
1814  ws_lexer_free_utf8(compiler, (yyvsp[0].string));
1815  }
1816 #line 1817 "y.tab.c" /* yacc.c:1648 */
1817  break;
1818 
1819  case 15:
1820 #line 169 "wmlscript/wsgram.y" /* yacc.c:1648 */
1821  {
1822  /* Pass this to the byte-code */
1823  if (!ws_bc_add_pragma_access_path(compiler->bc, (yyvsp[0].string)->data,
1824  (yyvsp[0].string)->len))
1825  ws_error_memory(compiler);
1826 
1827  ws_lexer_free_utf8(compiler, (yyvsp[0].string));
1828  }
1829 #line 1830 "y.tab.c" /* yacc.c:1648 */
1830  break;
1831 
1832  case 16:
1833 #line 178 "wmlscript/wsgram.y" /* yacc.c:1648 */
1834  {
1835  WsBool success = WS_TRUE;
1836 
1837  /* Pass these to the byte-code */
1838  if (!ws_bc_add_pragma_access_domain(compiler->bc, (yyvsp[-2].string)->data,
1839  (yyvsp[-2].string)->len))
1840  success = WS_FALSE;
1841 
1842  if (!ws_bc_add_pragma_access_path(compiler->bc, (yyvsp[0].string)->data,
1843  (yyvsp[0].string)->len))
1844  success = WS_FALSE;
1845 
1846  if (!success)
1847  ws_error_memory(compiler);
1848 
1849  ws_lexer_free_utf8(compiler, (yyvsp[-2].string));
1850  ws_lexer_free_utf8(compiler, (yyvsp[0].string));
1851  }
1852 #line 1853 "y.tab.c" /* yacc.c:1648 */
1853  break;
1854 
1855  case 21:
1856 #line 210 "wmlscript/wsgram.y" /* yacc.c:1648 */
1857  {
1858  /* Meta information for the origin servers. Show it
1859  * to the user if requested. */
1860  if (compiler->params.meta_name_cb)
1861  (*compiler->params.meta_name_cb)(
1862  (yyvsp[0].meta_body)->property_name, (yyvsp[0].meta_body)->content,
1863  (yyvsp[0].meta_body)->scheme,
1864  compiler->params.meta_name_cb_context);
1865 
1866  /* We do not need the MetaBody anymore. */
1867  ws_pragma_meta_body_free(compiler, (yyvsp[0].meta_body));
1868  }
1869 #line 1870 "y.tab.c" /* yacc.c:1648 */
1870  break;
1871 
1872  case 22:
1873 #line 226 "wmlscript/wsgram.y" /* yacc.c:1648 */
1874  {
1875  /* Meta information HTTP header that should be
1876  * included to an HTTP response header. Show it to
1877  * the user if requested. */
1878  if (compiler->params.meta_http_equiv_cb)
1879  (*compiler->params.meta_http_equiv_cb)(
1880  (yyvsp[0].meta_body)->property_name,
1881  (yyvsp[0].meta_body)->content,
1882  (yyvsp[0].meta_body)->scheme,
1884 
1885  /* We do not need the MetaBody anymore. */
1886  ws_pragma_meta_body_free(compiler, (yyvsp[0].meta_body));
1887  }
1888 #line 1889 "y.tab.c" /* yacc.c:1648 */
1889  break;
1890 
1891  case 23:
1892 #line 244 "wmlscript/wsgram.y" /* yacc.c:1648 */
1893  {
1894  WsBool success;
1895 
1896  /* Pass this pragma to the byte-code */
1897  if ((yyvsp[0].meta_body)) {
1898  if ((yyvsp[0].meta_body)->scheme)
1899  success
1901  compiler->bc,
1902  (yyvsp[0].meta_body)->property_name->data,
1903  (yyvsp[0].meta_body)->property_name->len,
1904  (yyvsp[0].meta_body)->content->data,
1905  (yyvsp[0].meta_body)->content->len,
1906  (yyvsp[0].meta_body)->scheme->data,
1907  (yyvsp[0].meta_body)->scheme->len);
1908  else
1910  compiler->bc,
1911  (yyvsp[0].meta_body)->property_name->data,
1912  (yyvsp[0].meta_body)->property_name->len,
1913  (yyvsp[0].meta_body)->content->data,
1914  (yyvsp[0].meta_body)->content->len);
1915 
1916  /* Free the MetaBody. */
1917  ws_pragma_meta_body_free(compiler, (yyvsp[0].meta_body));
1918 
1919  if (!success)
1920  ws_error_memory(compiler);
1921  }
1922  }
1923 #line 1924 "y.tab.c" /* yacc.c:1648 */
1924  break;
1925 
1926  case 24:
1927 #line 278 "wmlscript/wsgram.y" /* yacc.c:1648 */
1928  { (yyval.meta_body) = ws_pragma_meta_body(compiler, (yyvsp[-1].string), (yyvsp[0].string), NULL); }
1929 #line 1930 "y.tab.c" /* yacc.c:1648 */
1930  break;
1931 
1932  case 25:
1933 #line 280 "wmlscript/wsgram.y" /* yacc.c:1648 */
1934  { (yyval.meta_body) = ws_pragma_meta_body(compiler, (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string)); }
1935 #line 1936 "y.tab.c" /* yacc.c:1648 */
1936  break;
1937 
1938  case 31:
1939 #line 297 "wmlscript/wsgram.y" /* yacc.c:1648 */
1940  {
1941  char *name = ws_strdup((yyvsp[-5].identifier));
1942 
1943  ws_lexer_free_block(compiler, (yyvsp[-5].identifier));
1944 
1945  if (name)
1946  ws_function(compiler, (yyvsp[-7].boolean), name, (yylsp[-5]).first_line, (yyvsp[-3].list), (yyvsp[-1].list));
1947  else
1948  ws_error_memory(compiler);
1949  }
1950 #line 1951 "y.tab.c" /* yacc.c:1648 */
1951  break;
1952 
1953  case 32:
1954 #line 310 "wmlscript/wsgram.y" /* yacc.c:1648 */
1955  { (yyval.boolean) = WS_FALSE; }
1956 #line 1957 "y.tab.c" /* yacc.c:1648 */
1957  break;
1958 
1959  case 33:
1960 #line 311 "wmlscript/wsgram.y" /* yacc.c:1648 */
1961  { (yyval.boolean) = WS_TRUE; }
1962 #line 1963 "y.tab.c" /* yacc.c:1648 */
1963  break;
1964 
1965  case 34:
1966 #line 316 "wmlscript/wsgram.y" /* yacc.c:1648 */
1967  { (yyval.list) = ws_list_new(compiler); }
1968 #line 1969 "y.tab.c" /* yacc.c:1648 */
1969  break;
1970 
1971  case 38:
1972 #line 327 "wmlscript/wsgram.y" /* yacc.c:1648 */
1973  {
1974  char *id;
1975  WsFormalParm *parm;
1976 
1977  id = ws_f_strdup((compiler)->pool_stree, (yyvsp[0].identifier));
1978  parm = ws_formal_parameter(compiler, (yylsp[0]).first_line, id);
1979 
1980  ws_lexer_free_block(compiler, (yyvsp[0].identifier));
1981 
1982  if (id == NULL || parm == NULL) {
1983  ws_error_memory(compiler);
1984  (yyval.list) = NULL;
1985  } else {
1986  (yyval.list) = ws_list_new(compiler);
1987  ws_list_append(compiler, (yyval.list), parm);
1988  }
1989  }
1990 #line 1991 "y.tab.c" /* yacc.c:1648 */
1991  break;
1992 
1993  case 39:
1994 #line 345 "wmlscript/wsgram.y" /* yacc.c:1648 */
1995  {
1996  char *id;
1997  WsFormalParm *parm;
1998 
1999  id = ws_f_strdup(compiler->pool_stree, (yyvsp[0].identifier));
2000  parm = ws_formal_parameter(compiler, (yylsp[-2]).first_line, id);
2001 
2002  ws_lexer_free_block(compiler, (yyvsp[0].identifier));
2003 
2004  if (id == NULL || parm == NULL) {
2005  ws_error_memory(compiler);
2006  (yyval.list) = NULL;
2007  } else
2008  ws_list_append(compiler, (yyvsp[-2].list), parm);
2009  }
2010 #line 2011 "y.tab.c" /* yacc.c:1648 */
2011  break;
2012 
2013  case 40:
2014 #line 366 "wmlscript/wsgram.y" /* yacc.c:1648 */
2015  {
2016  if ((yyvsp[0].list))
2017  (yyval.stmt) = ws_stmt_block(compiler, (yyvsp[0].list)->first_line, (yyvsp[0].list)->last_line,
2018  (yyvsp[0].list));
2019  else
2020  (yyval.stmt) = NULL;
2021  }
2022 #line 2023 "y.tab.c" /* yacc.c:1648 */
2023  break;
2024 
2025  case 42:
2026 #line 375 "wmlscript/wsgram.y" /* yacc.c:1648 */
2027  { (yyval.stmt) = ws_stmt_empty(compiler, (yylsp[0]).first_line); }
2028 #line 2029 "y.tab.c" /* yacc.c:1648 */
2029  break;
2030 
2031  case 43:
2032 #line 377 "wmlscript/wsgram.y" /* yacc.c:1648 */
2033  { (yyval.stmt) = ws_stmt_expr(compiler, (yyvsp[-1].expr)->line, (yyvsp[-1].expr)); }
2034 #line 2035 "y.tab.c" /* yacc.c:1648 */
2035  break;
2036 
2037  case 46:
2038 #line 381 "wmlscript/wsgram.y" /* yacc.c:1648 */
2039  { (yyval.stmt) = ws_stmt_continue(compiler, (yylsp[-1]).first_line); }
2040 #line 2041 "y.tab.c" /* yacc.c:1648 */
2041  break;
2042 
2043  case 47:
2044 #line 383 "wmlscript/wsgram.y" /* yacc.c:1648 */
2045  { (yyval.stmt) = ws_stmt_break(compiler, (yylsp[-1]).first_line); }
2046 #line 2047 "y.tab.c" /* yacc.c:1648 */
2047  break;
2048 
2049  case 49:
2050 #line 388 "wmlscript/wsgram.y" /* yacc.c:1648 */
2051  {
2052  (yyval.list) = (yyvsp[-1].list);
2053  if ((yyval.list)) {
2054  (yyval.list)->first_line = (yylsp[-2]).first_line;
2055  (yyval.list)->last_line = (yylsp[0]).first_line;
2056  }
2057  }
2058 #line 2059 "y.tab.c" /* yacc.c:1648 */
2059  break;
2060 
2061  case 50:
2062 #line 396 "wmlscript/wsgram.y" /* yacc.c:1648 */
2063  {
2064  ws_error_syntax(compiler, (yylsp[0]).first_line);
2065  (yyval.list) = NULL;
2066  }
2067 #line 2068 "y.tab.c" /* yacc.c:1648 */
2068  break;
2069 
2070  case 51:
2071 #line 404 "wmlscript/wsgram.y" /* yacc.c:1648 */
2072  { (yyval.list) = ws_list_new(compiler); }
2073 #line 2074 "y.tab.c" /* yacc.c:1648 */
2074  break;
2075 
2076  case 53:
2077 #line 410 "wmlscript/wsgram.y" /* yacc.c:1648 */
2078  {
2079  (yyval.list) = ws_list_new(compiler);
2080  ws_list_append(compiler, (yyval.list), (yyvsp[0].stmt));
2081  }
2082 #line 2083 "y.tab.c" /* yacc.c:1648 */
2083  break;
2084 
2085  case 54:
2086 #line 415 "wmlscript/wsgram.y" /* yacc.c:1648 */
2087  { ws_list_append(compiler, (yyvsp[-1].list), (yyvsp[0].stmt)); }
2088 #line 2089 "y.tab.c" /* yacc.c:1648 */
2089  break;
2090 
2091  case 55:
2092 #line 420 "wmlscript/wsgram.y" /* yacc.c:1648 */
2093  { (yyval.stmt) = ws_stmt_variable(compiler, (yylsp[-2]).first_line, (yyvsp[-1].list)); }
2094 #line 2095 "y.tab.c" /* yacc.c:1648 */
2095  break;
2096 
2097  case 56:
2098 #line 422 "wmlscript/wsgram.y" /* yacc.c:1648 */
2099  { ws_error_syntax(compiler, (yylsp[0]).first_line); }
2100 #line 2101 "y.tab.c" /* yacc.c:1648 */
2101  break;
2102 
2103  case 57:
2104 #line 427 "wmlscript/wsgram.y" /* yacc.c:1648 */
2105  {
2106  (yyval.list) = ws_list_new(compiler);
2107  ws_list_append(compiler, (yyval.list), (yyvsp[0].vardec));
2108  }
2109 #line 2110 "y.tab.c" /* yacc.c:1648 */
2110  break;
2111 
2112  case 58:
2113 #line 432 "wmlscript/wsgram.y" /* yacc.c:1648 */
2114  { ws_list_append(compiler, (yyvsp[-2].list), (yyvsp[0].vardec)); }
2115 #line 2116 "y.tab.c" /* yacc.c:1648 */
2116  break;
2117 
2118  case 59:
2119 #line 437 "wmlscript/wsgram.y" /* yacc.c:1648 */
2120  {
2121  char *id = ws_f_strdup(compiler->pool_stree,
2122  (yyvsp[-1].identifier));
2123 
2124  ws_lexer_free_block(compiler, (yyvsp[-1].identifier));
2125  if (id == NULL) {
2126  ws_error_memory(compiler);
2127  (yyval.vardec) = NULL;
2128  } else
2129  (yyval.vardec) = ws_variable_declaration(compiler, id, (yyvsp[0].expr));
2130  }
2131 #line 2132 "y.tab.c" /* yacc.c:1648 */
2132  break;
2133 
2134  case 60:
2135 #line 452 "wmlscript/wsgram.y" /* yacc.c:1648 */
2136  { (yyval.expr) = NULL; }
2137 #line 2138 "y.tab.c" /* yacc.c:1648 */
2138  break;
2139 
2140  case 61:
2141 #line 454 "wmlscript/wsgram.y" /* yacc.c:1648 */
2142  { (yyval.expr) = (yyvsp[0].expr); }
2143 #line 2144 "y.tab.c" /* yacc.c:1648 */
2144  break;
2145 
2146  case 62:
2147 #line 459 "wmlscript/wsgram.y" /* yacc.c:1648 */
2148  { (yyval.stmt) = ws_stmt_if(compiler, (yylsp[-6]).first_line, (yyvsp[-4].expr), (yyvsp[-2].stmt), (yyvsp[0].stmt)); }
2149 #line 2150 "y.tab.c" /* yacc.c:1648 */
2150  break;
2151 
2152  case 63:
2153 #line 461 "wmlscript/wsgram.y" /* yacc.c:1648 */
2154  { (yyval.stmt) = ws_stmt_if(compiler, (yylsp[-4]).first_line, (yyvsp[-2].expr), (yyvsp[0].stmt), NULL); }
2155 #line 2156 "y.tab.c" /* yacc.c:1648 */
2156  break;
2157 
2158  case 64:
2159 #line 466 "wmlscript/wsgram.y" /* yacc.c:1648 */
2160  { (yyval.stmt) = ws_stmt_while(compiler, (yylsp[-4]).first_line, (yyvsp[-2].expr), (yyvsp[0].stmt)); }
2161 #line 2162 "y.tab.c" /* yacc.c:1648 */
2162  break;
2163 
2164  case 66:
2165 #line 473 "wmlscript/wsgram.y" /* yacc.c:1648 */
2166  { (yyval.stmt) = ws_stmt_for(compiler, (yylsp[-8]).first_line, NULL, (yyvsp[-6].expr), (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].stmt)); }
2167 #line 2168 "y.tab.c" /* yacc.c:1648 */
2168  break;
2169 
2170  case 67:
2171 #line 476 "wmlscript/wsgram.y" /* yacc.c:1648 */
2172  { (yyval.stmt) = ws_stmt_for(compiler, (yylsp[-9]).first_line, (yyvsp[-6].list), NULL, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].stmt)); }
2173 #line 2174 "y.tab.c" /* yacc.c:1648 */
2174  break;
2175 
2176  case 68:
2177 #line 481 "wmlscript/wsgram.y" /* yacc.c:1648 */
2178  { (yyval.stmt) = ws_stmt_return(compiler, (yylsp[-2]).first_line, (yyvsp[-1].expr)); }
2179 #line 2180 "y.tab.c" /* yacc.c:1648 */
2180  break;
2181 
2182  case 69:
2183 #line 487 "wmlscript/wsgram.y" /* yacc.c:1648 */
2184  { (yyval.expr) = NULL; }
2185 #line 2186 "y.tab.c" /* yacc.c:1648 */
2186  break;
2187 
2188  case 72:
2189 #line 495 "wmlscript/wsgram.y" /* yacc.c:1648 */
2190  { (yyval.expr) = ws_expr_comma(compiler, (yylsp[-1]).first_line, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2191 #line 2192 "y.tab.c" /* yacc.c:1648 */
2192  break;
2193 
2194  case 74:
2195 #line 501 "wmlscript/wsgram.y" /* yacc.c:1648 */
2196  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), '=', (yyvsp[0].expr)); }
2197 #line 2198 "y.tab.c" /* yacc.c:1648 */
2198  break;
2199 
2200  case 75:
2201 #line 503 "wmlscript/wsgram.y" /* yacc.c:1648 */
2202  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), tMULA, (yyvsp[0].expr)); }
2203 #line 2204 "y.tab.c" /* yacc.c:1648 */
2204  break;
2205 
2206  case 76:
2207 #line 505 "wmlscript/wsgram.y" /* yacc.c:1648 */
2208  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), tDIVA, (yyvsp[0].expr)); }
2209 #line 2210 "y.tab.c" /* yacc.c:1648 */
2210  break;
2211 
2212  case 77:
2213 #line 507 "wmlscript/wsgram.y" /* yacc.c:1648 */
2214  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), tREMA, (yyvsp[0].expr)); }
2215 #line 2216 "y.tab.c" /* yacc.c:1648 */
2216  break;
2217 
2218  case 78:
2219 #line 509 "wmlscript/wsgram.y" /* yacc.c:1648 */
2220  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), tADDA, (yyvsp[0].expr)); }
2221 #line 2222 "y.tab.c" /* yacc.c:1648 */
2222  break;
2223 
2224  case 79:
2225 #line 511 "wmlscript/wsgram.y" /* yacc.c:1648 */
2226  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), tSUBA, (yyvsp[0].expr)); }
2227 #line 2228 "y.tab.c" /* yacc.c:1648 */
2228  break;
2229 
2230  case 80:
2231 #line 513 "wmlscript/wsgram.y" /* yacc.c:1648 */
2232  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), tLSHIFTA, (yyvsp[0].expr)); }
2233 #line 2234 "y.tab.c" /* yacc.c:1648 */
2234  break;
2235 
2236  case 81:
2237 #line 515 "wmlscript/wsgram.y" /* yacc.c:1648 */
2238  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), tRSSHIFTA, (yyvsp[0].expr)); }
2239 #line 2240 "y.tab.c" /* yacc.c:1648 */
2240  break;
2241 
2242  case 82:
2243 #line 517 "wmlscript/wsgram.y" /* yacc.c:1648 */
2244  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), tRSZSHIFTA, (yyvsp[0].expr)); }
2245 #line 2246 "y.tab.c" /* yacc.c:1648 */
2246  break;
2247 
2248  case 83:
2249 #line 519 "wmlscript/wsgram.y" /* yacc.c:1648 */
2250  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), tANDA, (yyvsp[0].expr)); }
2251 #line 2252 "y.tab.c" /* yacc.c:1648 */
2252  break;
2253 
2254  case 84:
2255 #line 521 "wmlscript/wsgram.y" /* yacc.c:1648 */
2256  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), tXORA, (yyvsp[0].expr)); }
2257 #line 2258 "y.tab.c" /* yacc.c:1648 */
2258  break;
2259 
2260  case 85:
2261 #line 523 "wmlscript/wsgram.y" /* yacc.c:1648 */
2262  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), tORA, (yyvsp[0].expr)); }
2263 #line 2264 "y.tab.c" /* yacc.c:1648 */
2264  break;
2265 
2266  case 86:
2267 #line 525 "wmlscript/wsgram.y" /* yacc.c:1648 */
2268  { (yyval.expr) = ws_expr_assign(compiler, (yylsp[-2]).first_line, (yyvsp[-2].identifier), tIDIVA, (yyvsp[0].expr)); }
2269 #line 2270 "y.tab.c" /* yacc.c:1648 */
2270  break;
2271 
2272  case 88:
2273 #line 531 "wmlscript/wsgram.y" /* yacc.c:1648 */
2274  { (yyval.expr) = ws_expr_conditional(compiler, (yylsp[-3]).first_line, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); }
2275 #line 2276 "y.tab.c" /* yacc.c:1648 */
2276  break;
2277 
2278  case 90:
2279 #line 537 "wmlscript/wsgram.y" /* yacc.c:1648 */
2280  { (yyval.expr) = ws_expr_logical(compiler, (yylsp[-1]).first_line, WS_ASM_SCOR, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2281 #line 2282 "y.tab.c" /* yacc.c:1648 */
2282  break;
2283 
2284  case 92:
2285 #line 543 "wmlscript/wsgram.y" /* yacc.c:1648 */
2286  { (yyval.expr) = ws_expr_logical(compiler, (yylsp[-1]).first_line, WS_ASM_SCAND, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2287 #line 2288 "y.tab.c" /* yacc.c:1648 */
2288  break;
2289 
2290  case 94:
2291 #line 549 "wmlscript/wsgram.y" /* yacc.c:1648 */
2292  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_B_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2293 #line 2294 "y.tab.c" /* yacc.c:1648 */
2294  break;
2295 
2296  case 96:
2297 #line 555 "wmlscript/wsgram.y" /* yacc.c:1648 */
2298  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_B_XOR, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2299 #line 2300 "y.tab.c" /* yacc.c:1648 */
2300  break;
2301 
2302  case 98:
2303 #line 561 "wmlscript/wsgram.y" /* yacc.c:1648 */
2304  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_B_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2305 #line 2306 "y.tab.c" /* yacc.c:1648 */
2306  break;
2307 
2308  case 100:
2309 #line 567 "wmlscript/wsgram.y" /* yacc.c:1648 */
2310  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_EQ, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2311 #line 2312 "y.tab.c" /* yacc.c:1648 */
2312  break;
2313 
2314  case 101:
2315 #line 569 "wmlscript/wsgram.y" /* yacc.c:1648 */
2316  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_NE, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2317 #line 2318 "y.tab.c" /* yacc.c:1648 */
2318  break;
2319 
2320  case 103:
2321 #line 575 "wmlscript/wsgram.y" /* yacc.c:1648 */
2322  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_LT, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2323 #line 2324 "y.tab.c" /* yacc.c:1648 */
2324  break;
2325 
2326  case 104:
2327 #line 577 "wmlscript/wsgram.y" /* yacc.c:1648 */
2328  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_GT, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2329 #line 2330 "y.tab.c" /* yacc.c:1648 */
2330  break;
2331 
2332  case 105:
2333 #line 579 "wmlscript/wsgram.y" /* yacc.c:1648 */
2334  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_LE, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2335 #line 2336 "y.tab.c" /* yacc.c:1648 */
2336  break;
2337 
2338  case 106:
2339 #line 581 "wmlscript/wsgram.y" /* yacc.c:1648 */
2340  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_GE, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2341 #line 2342 "y.tab.c" /* yacc.c:1648 */
2342  break;
2343 
2344  case 108:
2345 #line 587 "wmlscript/wsgram.y" /* yacc.c:1648 */
2346  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_B_LSHIFT, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2347 #line 2348 "y.tab.c" /* yacc.c:1648 */
2348  break;
2349 
2350  case 109:
2351 #line 589 "wmlscript/wsgram.y" /* yacc.c:1648 */
2352  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_B_RSSHIFT, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2353 #line 2354 "y.tab.c" /* yacc.c:1648 */
2354  break;
2355 
2356  case 110:
2357 #line 591 "wmlscript/wsgram.y" /* yacc.c:1648 */
2358  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_B_RSZSHIFT, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2359 #line 2360 "y.tab.c" /* yacc.c:1648 */
2360  break;
2361 
2362  case 112:
2363 #line 597 "wmlscript/wsgram.y" /* yacc.c:1648 */
2364  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2365 #line 2366 "y.tab.c" /* yacc.c:1648 */
2366  break;
2367 
2368  case 113:
2369 #line 599 "wmlscript/wsgram.y" /* yacc.c:1648 */
2370  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_SUB, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2371 #line 2372 "y.tab.c" /* yacc.c:1648 */
2372  break;
2373 
2374  case 115:
2375 #line 605 "wmlscript/wsgram.y" /* yacc.c:1648 */
2376  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_MUL, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2377 #line 2378 "y.tab.c" /* yacc.c:1648 */
2378  break;
2379 
2380  case 116:
2381 #line 607 "wmlscript/wsgram.y" /* yacc.c:1648 */
2382  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_DIV, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2383 #line 2384 "y.tab.c" /* yacc.c:1648 */
2384  break;
2385 
2386  case 117:
2387 #line 609 "wmlscript/wsgram.y" /* yacc.c:1648 */
2388  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_IDIV, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2389 #line 2390 "y.tab.c" /* yacc.c:1648 */
2390  break;
2391 
2392  case 118:
2393 #line 611 "wmlscript/wsgram.y" /* yacc.c:1648 */
2394  { (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_REM, (yyvsp[-2].expr), (yyvsp[0].expr)); }
2395 #line 2396 "y.tab.c" /* yacc.c:1648 */
2396  break;
2397 
2398  case 120:
2399 #line 617 "wmlscript/wsgram.y" /* yacc.c:1648 */
2400  { (yyval.expr) = ws_expr_unary(compiler, (yylsp[-1]).first_line, WS_ASM_TYPEOF, (yyvsp[0].expr)); }
2401 #line 2402 "y.tab.c" /* yacc.c:1648 */
2402  break;
2403 
2404  case 121:
2405 #line 619 "wmlscript/wsgram.y" /* yacc.c:1648 */
2406  { (yyval.expr) = ws_expr_unary(compiler, (yylsp[-1]).first_line, WS_ASM_ISVALID, (yyvsp[0].expr)); }
2407 #line 2408 "y.tab.c" /* yacc.c:1648 */
2408  break;
2409 
2410  case 122:
2411 #line 621 "wmlscript/wsgram.y" /* yacc.c:1648 */
2412  { (yyval.expr) = ws_expr_unary_var(compiler, (yylsp[-1]).first_line, WS_TRUE, (yyvsp[0].identifier)); }
2413 #line 2414 "y.tab.c" /* yacc.c:1648 */
2414  break;
2415 
2416  case 123:
2417 #line 623 "wmlscript/wsgram.y" /* yacc.c:1648 */
2418  { (yyval.expr) = ws_expr_unary_var(compiler, (yylsp[-1]).first_line, WS_FALSE, (yyvsp[0].identifier)); }
2419 #line 2420 "y.tab.c" /* yacc.c:1648 */
2420  break;
2421 
2422  case 124:
2423 #line 625 "wmlscript/wsgram.y" /* yacc.c:1648 */
2424  {
2425  /* There is no direct way to compile unary `+'.
2426  * It doesn't do anything except require type conversion
2427  * (section 7.2, 7.3.2), and we do that by converting
2428  * it to a binary expression: `UnaryExpression - 0'.
2429  * Using `--UnaryExpression' would not be correct because
2430  * it might overflow if UnaryExpression is the smallest
2431  * possible integer value (see 6.2.7.1).
2432  * Using `UnaryExpression + 0' would not be correct
2433  * because binary `+' accepts strings, which makes the
2434  * type conversion different.
2435  */
2436  (yyval.expr) = ws_expr_binary(compiler, (yylsp[-1]).first_line, WS_ASM_SUB, (yyvsp[0].expr),
2437  ws_expr_const_integer(compiler, (yylsp[-1]).first_line, 0));
2438  }
2439 #line 2440 "y.tab.c" /* yacc.c:1648 */
2440  break;
2441 
2442  case 125:
2443 #line 641 "wmlscript/wsgram.y" /* yacc.c:1648 */
2444  { (yyval.expr) = ws_expr_unary(compiler, (yylsp[-1]).first_line, WS_ASM_UMINUS, (yyvsp[0].expr)); }
2445 #line 2446 "y.tab.c" /* yacc.c:1648 */
2446  break;
2447 
2448  case 126:
2449 #line 643 "wmlscript/wsgram.y" /* yacc.c:1648 */
2450  { (yyval.expr) = ws_expr_unary(compiler, (yylsp[-1]).first_line, WS_ASM_B_NOT, (yyvsp[0].expr)); }
2451 #line 2452 "y.tab.c" /* yacc.c:1648 */
2452  break;
2453 
2454  case 127:
2455 #line 645 "wmlscript/wsgram.y" /* yacc.c:1648 */
2456  { (yyval.expr) = ws_expr_unary(compiler, (yylsp[-1]).first_line, WS_ASM_NOT, (yyvsp[0].expr)); }
2457 #line 2458 "y.tab.c" /* yacc.c:1648 */
2458  break;
2459 
2460  case 129:
2461 #line 651 "wmlscript/wsgram.y" /* yacc.c:1648 */
2462  { (yyval.expr) = ws_expr_postfix_var(compiler, (yylsp[-1]).first_line, WS_TRUE, (yyvsp[-1].identifier)); }
2463 #line 2464 "y.tab.c" /* yacc.c:1648 */
2464  break;
2465 
2466  case 130:
2467 #line 653 "wmlscript/wsgram.y" /* yacc.c:1648 */
2468  { (yyval.expr) = ws_expr_postfix_var(compiler, (yylsp[-1]).first_line, WS_FALSE, (yyvsp[-1].identifier)); }
2469 #line 2470 "y.tab.c" /* yacc.c:1648 */
2470  break;
2471 
2472  case 132:
2473 #line 659 "wmlscript/wsgram.y" /* yacc.c:1648 */
2474  {
2475  WsFunctionHash *f = ws_function_hash(compiler, (yyvsp[-1].identifier));
2476 
2477  /* Add an usage count for the local script function. */
2478  if (f)
2479  f->usage_count++;
2480 
2481  (yyval.expr) = ws_expr_call(compiler, (yylsp[-1]).first_line, ' ', NULL, (yyvsp[-1].identifier), (yyvsp[0].list));
2482  }
2483 #line 2484 "y.tab.c" /* yacc.c:1648 */
2484  break;
2485 
2486  case 133:
2487 #line 669 "wmlscript/wsgram.y" /* yacc.c:1648 */
2488  { (yyval.expr) = ws_expr_call(compiler, (yylsp[-1]).first_line, '#', (yyvsp[-3].identifier), (yyvsp[-1].identifier), (yyvsp[0].list)); }
2489 #line 2490 "y.tab.c" /* yacc.c:1648 */
2490  break;
2491 
2492  case 134:
2493 #line 671 "wmlscript/wsgram.y" /* yacc.c:1648 */
2494  { (yyval.expr) = ws_expr_call(compiler, (yylsp[-1]).first_line, '.', (yyvsp[-3].identifier), (yyvsp[-1].identifier), (yyvsp[0].list)); }
2495 #line 2496 "y.tab.c" /* yacc.c:1648 */
2496  break;
2497 
2498  case 135:
2499 #line 676 "wmlscript/wsgram.y" /* yacc.c:1648 */
2500  { (yyval.expr) = ws_expr_symbol(compiler, (yylsp[0]).first_line, (yyvsp[0].identifier)); }
2501 #line 2502 "y.tab.c" /* yacc.c:1648 */
2502  break;
2503 
2504  case 136:
2505 #line 678 "wmlscript/wsgram.y" /* yacc.c:1648 */
2506  { (yyval.expr) = ws_expr_const_invalid(compiler, (yylsp[0]).first_line); }
2507 #line 2508 "y.tab.c" /* yacc.c:1648 */
2508  break;
2509 
2510  case 137:
2511 #line 680 "wmlscript/wsgram.y" /* yacc.c:1648 */
2512  { (yyval.expr) = ws_expr_const_true(compiler, (yylsp[0]).first_line); }
2513 #line 2514 "y.tab.c" /* yacc.c:1648 */
2514  break;
2515 
2516  case 138:
2517 #line 682 "wmlscript/wsgram.y" /* yacc.c:1648 */
2518  { (yyval.expr) = ws_expr_const_false(compiler, (yylsp[0]).first_line); }
2519 #line 2520 "y.tab.c" /* yacc.c:1648 */
2520  break;
2521 
2522  case 139:
2523 #line 684 "wmlscript/wsgram.y" /* yacc.c:1648 */
2524  { (yyval.expr) = ws_expr_const_integer(compiler, (yylsp[0]).first_line, (yyvsp[0].integer)); }
2525 #line 2526 "y.tab.c" /* yacc.c:1648 */
2526  break;
2527 
2528  case 140:
2529 #line 686 "wmlscript/wsgram.y" /* yacc.c:1648 */
2530  { (yyval.expr) = ws_expr_const_float(compiler, (yylsp[0]).first_line, (yyvsp[0].vfloat)); }
2531 #line 2532 "y.tab.c" /* yacc.c:1648 */
2532  break;
2533 
2534  case 141:
2535 #line 688 "wmlscript/wsgram.y" /* yacc.c:1648 */
2536  { (yyval.expr) = ws_expr_const_string(compiler, (yylsp[0]).first_line, (yyvsp[0].string)); }
2537 #line 2538 "y.tab.c" /* yacc.c:1648 */
2538  break;
2539 
2540  case 142:
2541 #line 690 "wmlscript/wsgram.y" /* yacc.c:1648 */
2542  { (yyval.expr) = (yyvsp[-1].expr); }
2543 #line 2544 "y.tab.c" /* yacc.c:1648 */
2544  break;
2545 
2546  case 143:
2547 #line 695 "wmlscript/wsgram.y" /* yacc.c:1648 */
2548  { (yyval.list) = ws_list_new(compiler); }
2549 #line 2550 "y.tab.c" /* yacc.c:1648 */
2550  break;
2551 
2552  case 144:
2553 #line 697 "wmlscript/wsgram.y" /* yacc.c:1648 */
2554  { (yyval.list) = (yyvsp[-1].list); }
2555 #line 2556 "y.tab.c" /* yacc.c:1648 */
2556  break;
2557 
2558  case 145:
2559 #line 702 "wmlscript/wsgram.y" /* yacc.c:1648 */
2560  {
2561  (yyval.list) = ws_list_new(compiler);
2562  ws_list_append(compiler, (yyval.list), (yyvsp[0].expr));
2563  }
2564 #line 2565 "y.tab.c" /* yacc.c:1648 */
2565  break;
2566 
2567  case 146:
2568 #line 707 "wmlscript/wsgram.y" /* yacc.c:1648 */
2569  { ws_list_append(compiler, (yyvsp[-2].list), (yyvsp[0].expr)); }
2570 #line 2571 "y.tab.c" /* yacc.c:1648 */
2571  break;
2572 
2573 
2574 #line 2575 "y.tab.c" /* yacc.c:1648 */
2575  default: break;
2576  }
2577  /* User semantic actions sometimes alter yychar, and that requires
2578  that yytoken be updated with the new translation. We take the
2579  approach of translating immediately before every use of yytoken.
2580  One alternative is translating here after every semantic action,
2581  but that translation would be missed if the semantic action invokes
2582  YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
2583  if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
2584  incorrect destructor might then be invoked immediately. In the
2585  case of YYERROR or YYBACKUP, subsequent parser actions might lead
2586  to an incorrect destructor call or verbose syntax error message
2587  before the lookahead is translated. */
2588  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2589 
2590  YYPOPSTACK (yylen);
2591  yylen = 0;
2592  YY_STACK_PRINT (yyss, yyssp);
2593 
2594  *++yyvsp = yyval;
2595  *++yylsp = yyloc;
2596 
2597  /* Now 'shift' the result of the reduction. Determine what state
2598  that goes to, based on the state we popped back to and the rule
2599  number reduced by. */
2600 
2601  yyn = yyr1[yyn];
2602 
2603  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2604  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2605  yystate = yytable[yystate];
2606  else
2607  yystate = yydefgoto[yyn - YYNTOKENS];
2608 
2609  goto yynewstate;
2610 
2611 
2612 /*--------------------------------------.
2613 | yyerrlab -- here on detecting error. |
2614 `--------------------------------------*/
2615 yyerrlab:
2616  /* Make sure we have latest lookahead translation. See comments at
2617  user semantic actions for why this is necessary. */
2618  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
2619 
2620  /* If not already recovering from an error, report this error. */
2621  if (!yyerrstatus)
2622  {
2623  ++yynerrs;
2624 #if ! YYERROR_VERBOSE
2625  yyerror (&yylloc, compiler, YY_("syntax error"));
2626 #else
2627 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
2628  yyssp, yytoken)
2629  {
2630  char const *yymsgp = YY_("syntax error");
2631  int yysyntax_error_status;
2632  yysyntax_error_status = YYSYNTAX_ERROR;
2633  if (yysyntax_error_status == 0)
2634  yymsgp = yymsg;
2635  else if (yysyntax_error_status == 1)
2636  {
2637  if (yymsg != yymsgbuf)
2638  YYSTACK_FREE (yymsg);
2639  yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
2640  if (!yymsg)
2641  {
2642  yymsg = yymsgbuf;
2643  yymsg_alloc = sizeof yymsgbuf;
2644  yysyntax_error_status = 2;
2645  }
2646  else
2647  {
2648  yysyntax_error_status = YYSYNTAX_ERROR;
2649  yymsgp = yymsg;
2650  }
2651  }
2652  yyerror (&yylloc, compiler, yymsgp);
2653  if (yysyntax_error_status == 2)
2654  goto yyexhaustedlab;
2655  }
2656 # undef YYSYNTAX_ERROR
2657 #endif
2658  }
2659 
2660  yyerror_range[1] = yylloc;
2661 
2662  if (yyerrstatus == 3)
2663  {
2664  /* If just tried and failed to reuse lookahead token after an
2665  error, discard it. */
2666 
2667  if (yychar <= YYEOF)
2668  {
2669  /* Return failure if at end of input. */
2670  if (yychar == YYEOF)
2671  YYABORT;
2672  }
2673  else
2674  {
2675  yydestruct ("Error: discarding",
2676  yytoken, &yylval, &yylloc, compiler);
2677  yychar = YYEMPTY;
2678  }
2679  }
2680 
2681  /* Else will try to reuse lookahead token after shifting the error
2682  token. */
2683  goto yyerrlab1;
2684 
2685 
2686 /*---------------------------------------------------.
2687 | yyerrorlab -- error raised explicitly by YYERROR. |
2688 `---------------------------------------------------*/
2689 yyerrorlab:
2690 
2691  /* Pacify compilers like GCC when the user code never invokes
2692  YYERROR and the label yyerrorlab therefore never appears in user
2693  code. */
2694  if (/*CONSTCOND*/ 0)
2695  goto yyerrorlab;
2696 
2697  /* Do not reclaim the symbols of the rule whose action triggered
2698  this YYERROR. */
2699  YYPOPSTACK (yylen);
2700  yylen = 0;
2701  YY_STACK_PRINT (yyss, yyssp);
2702  yystate = *yyssp;
2703  goto yyerrlab1;
2704 
2705 
2706 /*-------------------------------------------------------------.
2707 | yyerrlab1 -- common code for both syntax error and YYERROR. |
2708 `-------------------------------------------------------------*/
2709 yyerrlab1:
2710  yyerrstatus = 3; /* Each real token shifted decrements this. */
2711 
2712  for (;;)
2713  {
2714  yyn = yypact[yystate];
2715  if (!yypact_value_is_default (yyn))
2716  {
2717  yyn += YYTERROR;
2718  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2719  {
2720  yyn = yytable[yyn];
2721  if (0 < yyn)
2722  break;
2723  }
2724  }
2725 
2726  /* Pop the current state because it cannot handle the error token. */
2727  if (yyssp == yyss)
2728  YYABORT;
2729 
2730  yyerror_range[1] = *yylsp;
2731  yydestruct ("Error: popping",
2732  yystos[yystate], yyvsp, yylsp, compiler);
2733  YYPOPSTACK (1);
2734  yystate = *yyssp;
2735  YY_STACK_PRINT (yyss, yyssp);
2736  }
2737 
2739  *++yyvsp = yylval;
2741 
2742  yyerror_range[2] = yylloc;
2743  /* Using YYLLOC is tempting, but would change the location of
2744  the lookahead. YYLOC is available though. */
2745  YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
2746  *++yylsp = yyloc;
2747 
2748  /* Shift the error token. */
2749  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
2750 
2751  yystate = yyn;
2752  goto yynewstate;
2753 
2754 
2755 /*-------------------------------------.
2756 | yyacceptlab -- YYACCEPT comes here. |
2757 `-------------------------------------*/
2758 yyacceptlab:
2759  yyresult = 0;
2760  goto yyreturn;
2761 
2762 /*-----------------------------------.
2763 | yyabortlab -- YYABORT comes here. |
2764 `-----------------------------------*/
2765 yyabortlab:
2766  yyresult = 1;
2767  goto yyreturn;
2768 
2769 #if !defined yyoverflow || YYERROR_VERBOSE
2770 /*-------------------------------------------------.
2771 | yyexhaustedlab -- memory exhaustion comes here. |
2772 `-------------------------------------------------*/
2773 yyexhaustedlab:
2774  yyerror (&yylloc, compiler, YY_("memory exhausted"));
2775  yyresult = 2;
2776  /* Fall through. */
2777 #endif
2778 
2779 yyreturn:
2780  if (yychar != YYEMPTY)
2781  {
2782  /* Make sure we have latest lookahead translation. See comments at
2783  user semantic actions for why this is necessary. */
2784  yytoken = YYTRANSLATE (yychar);
2785  yydestruct ("Cleanup: discarding lookahead",
2786  yytoken, &yylval, &yylloc, compiler);
2787  }
2788  /* Do not reclaim the symbols of the rule whose action triggered
2789  this YYABORT or YYACCEPT. */
2790  YYPOPSTACK (yylen);
2791  YY_STACK_PRINT (yyss, yyssp);
2792  while (yyssp != yyss)
2793  {
2794  yydestruct ("Cleanup: popping",
2795  yystos[*yyssp], yyvsp, yylsp, compiler);
2796  YYPOPSTACK (1);
2797  }
2798 #ifndef yyoverflow
2799  if (yyss != yyssa)
2800  YYSTACK_FREE (yyss);
2801 #endif
2802 #if YYERROR_VERBOSE
2803  if (yymsg != yymsgbuf)
2804  YYSTACK_FREE (yymsg);
2805 #endif
2806  return yyresult;
2807 }
void ws_function(WsCompiler *compiler, WsBool externp, char *name, WsUInt32 line, WsList *params, WsList *block)
Definition: wsstree.c:343
WsStatement * ws_stmt_empty(WsCompiler *compiler, WsUInt32 line)
Definition: wsstree.c:1413
#define WS_ASM_SCOR
Definition: wsasm.h:207
#define WS_ASM_B_RSSHIFT
Definition: wsasm.h:195
Definition: wsint.h:131
WsStatement * ws_stmt_for(WsCompilerPtr compiler, WsUInt32 line, WsList *init, WsExpression *e1, WsExpression *e2, WsExpression *e3, WsStatement *stmt_body)
Definition: wsstree.c:1447
WsExpression * ws_expr_postfix_var(WsCompilerPtr compiler, WsUInt32 line, WsBool addp, char *variable)
Definition: wsstree.c:1010
#define YYABORT
Definition: wsgram.c:1020
WsExpression * ws_expr_call(WsCompiler *compiler, WsUInt32 line, int type, char *base, char *name, WsList *arguments)
Definition: wsstree.c:1028
#define yylex
Definition: wsgram.c:64
#define tDIVA
Definition: wsgram.c:285
WsVarDec * vardec
Definition: wsgram.c:309
WsStatement * ws_stmt_return(WsCompilerPtr compiler, WsUInt32 line, WsExpression *expr)
Definition: wsstree.c:1491
#define YYSTACK_BYTES(N)
Definition: wsgram.c:555
WsBool ws_bc_add_pragma_access_domain(WsBc *bc, const unsigned char *domain, size_t domain_len)
Definition: wsbc.c:981
#define tRSZSHIFTA
Definition: wsgram.c:292
void ws_pragma_meta_body_free(WsCompilerPtr compiler, WsPragmaMetaBody *mb)
Definition: wsstree.c:291
WsStatement * ws_stmt_continue(WsCompiler *compiler, WsUInt32 line)
Definition: wsstree.c:1479
#define YYPOPSTACK(N)
WsExpression * ws_expr_binary(WsCompilerPtr compiler, WsUInt32 line, int type, WsExpression *left, WsExpression *right)
Definition: wsstree.c:956
#define WS_ASM_TYPEOF
Definition: wsasm.h:212
#define YY_INITIAL_VALUE(Value)
Definition: wsgram.c:458
#define yytable_value_is_error(Yytable_value)
Definition: wsgram.c:750
static const yytype_int16 yypact[]
Definition: wsgram.c:755
#define WS_ASM_NOT
Definition: wsasm.h:205
#define yyerror
Definition: wsgram.c:65
WsBool ws_bc_add_pragma_access_path(WsBc *bc, const unsigned char *path, size_t path_len)
Definition: wsbc.c:996
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
Definition: wsgram.c:566
#define YYLLOC_DEFAULT(Current, Rhs, N)
Definition: wsgram.c:1053
static const yytype_int16 yydefgoto[]
Definition: wsgram.c:830
static const yytype_int16 yytable[]
Definition: wsgram.c:843
#define YYTRANSLATE(YYX)
Definition: wsgram.c:618
#define YYFINAL
Definition: wsgram.c:600
#define tRSSHIFTA
Definition: wsgram.c:291
#define WS_ASM_DIV
Definition: wsasm.h:186
#define tREMA
Definition: wsgram.c:289
#define YYSTACK_FREE
Definition: wsgram.c:509
WsVarDec * ws_variable_declaration(WsCompilerPtr compiler, char *name, WsExpression *expr)
Definition: wsstree.c:78
#define tLSHIFTA
Definition: wsgram.c:290
WsStatement * ws_stmt_expr(WsCompiler *compiler, WsUInt32 line, WsExpression *expr)
Definition: wsstree.c:1419
WsStatement * ws_stmt_while(WsCompiler *compiler, WsUInt32 line, WsExpression *expr, WsStatement *stmt_arg)
Definition: wsstree.c:1465
#define YYTERROR
Definition: wsgram.c:1044
#define yynerrs
Definition: wsgram.c:67
#define WS_ASM_B_LSHIFT
Definition: wsasm.h:194
WsExpression * ws_expr_const_string(WsCompiler *compiler, WsUInt32 line, WsUtf8String *string)
Definition: wsstree.c:1112
#define YY_STACK_PRINT(Bottom, Top)
Definition: wsgram.c:1243
#define tIDIVA
Definition: wsgram.c:222
WsStatement * stmt
Definition: wsgram.c:313
WsPragmaMetaBody * ws_pragma_meta_body(WsCompilerPtr compiler, WsUtf8String *property_name, WsUtf8String *content, WsUtf8String *scheme)
Definition: wsstree.c:271
#define WS_ASM_ISVALID
Definition: wsasm.h:213
static const yytype_uint8 yyr1[]
Definition: wsgram.c:974
void ws_lexer_free_block(WsCompiler *compiler, void *ptr)
Definition: ws.c:281
WsExpression * ws_expr_const_float(WsCompiler *compiler, WsUInt32 line, WsFloat fval)
Definition: wsstree.c:1100
#define WS_ASM_B_NOT
Definition: wsasm.h:193
#define WS_ASM_LE
Definition: wsasm.h:199
#define WS_ASM_REM
Definition: wsasm.h:188
WsBc * bc
Definition: wsint.h:218
yytype_int16 yyss_alloc
Definition: wsgram.c:545
WsExpression * ws_expr_symbol(WsCompiler *compiler, WsUInt32 line, char *identifier)
Definition: wsstree.c:1051
WsExpression * ws_expr_const_integer(WsCompiler *compiler, WsUInt32 line, WsUInt32 ival)
Definition: wsstree.c:1086
static const yytype_uint8 yystos[]
Definition: wsgram.c:943
WsExpression * expr
Definition: wsgram.c:314
#define yypact_value_is_default(Yystate)
Definition: wsgram.c:745
WsFormalParm * ws_formal_parameter(WsCompilerPtr compiler, WsUInt32 line, char *name)
Definition: wsstree.c:93
WsStatement * ws_stmt_break(WsCompiler *compiler, WsUInt32 line)
Definition: wsstree.c:1485
YYSTYPE yyvs_alloc
Definition: wsgram.c:546
WsStatement * ws_stmt_if(WsCompiler *compiler, WsUInt32 line, WsExpression *expr, WsStatement *s_then, WsStatement *s_else)
Definition: wsstree.c:1431
void * meta_name_cb_context
Definition: ws.h:174
void * ws_f_strdup(WsFastMalloc *pool, const char *str)
Definition: wsfalloc.c:177
void ws_error_syntax(WsCompilerPtr compiler, WsUInt32 line)
Definition: wserror.c:120
WsPragmaMetaProc meta_name_cb
Definition: ws.h:173
char * name
Definition: smsc_cimd2.c:212
#define tMULA
Definition: wsgram.c:284
#define WS_ASM_GT
Definition: wsasm.h:202
#define tSUBA
Definition: wsgram.c:283
static const yytype_int16 yypgoto[]
Definition: wsgram.c:819
WsExpression * ws_expr_const_true(WsCompiler *compiler, WsUInt32 line)
Definition: wsstree.c:1074
#define YYNTOKENS
Definition: wsgram.c:605
Definition: seewbmp.c:154
#define WS_ASM_NE
Definition: wsasm.h:203
void ws_pragma_use(WsCompilerPtr compiler, WsUInt32 line, char *identifier, WsUtf8String *url)
Definition: wsstree.c:220
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
Definition: wsgram.c:1242
#define YYEMPTY
Definition: wsgram.c:1016
WsUInt32 first_line
Definition: wsstree.h:524
WsStatement * ws_stmt_variable(WsCompilerPtr compiler, WsUInt32 line, WsList *variables)
Definition: wsstree.c:1401
WsExpression * ws_expr_unary(WsCompilerPtr compiler, WsUInt32 line, int type, WsExpression *expression)
Definition: wsstree.c:971
#define YYMAXDEPTH
Definition: wsgram.c:1261
#define YYACCEPT
Definition: wsgram.c:1019
WsExpression * ws_expr_logical(WsCompilerPtr compiler, WsUInt32 line, int type, WsExpression *left, WsExpression *right)
Definition: wsstree.c:941
#define YYEOF
Definition: wsgram.c:1017
WsExpression * ws_expr_const_false(WsCompiler *compiler, WsUInt32 line)
Definition: wsstree.c:1080
#define WS_ASM_B_OR
Definition: wsasm.h:191
WsList * ws_list_new(WsCompiler *compiler)
Definition: wsstree.c:110
short int yytype_int16
Definition: wsgram.c:385
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
Definition: wsgram.c:461
#define WS_ASM_B_XOR
Definition: wsasm.h:192
WsList * list
Definition: wsgram.c:307
WsFunctionHash * ws_function_hash(WsCompilerPtr compiler, char *name)
Definition: wsstree.c:318
WsBool
Definition: wsint.h:128
WsBool ws_bc_add_pragma_user_agent_property(WsBc *bc, const unsigned char *name, size_t name_len, const unsigned char *property, size_t property_len)
Definition: wsbc.c:1011
#define WS_ASM_EQ
Definition: wsasm.h:198
#define tXORA
Definition: wsgram.c:288
void * ws_strdup(const char *str)
Definition: wsalloc.c:119
#define tORA
Definition: wsgram.c:287
#define YYSTACK_ALLOC
Definition: wsgram.c:508
#define YYDPRINTF(Args)
Definition: wsgram.c:1241
WsPragmaMetaProc meta_http_equiv_cb
Definition: ws.h:178
YYLTYPE yyls_alloc
Definition: wsgram.c:547
WsCompilerParams params
Definition: wsint.h:193
void * meta_http_equiv_cb_context
Definition: ws.h:179
WsExpression * ws_expr_const_invalid(WsCompiler *compiler, WsUInt32 line)
Definition: wsstree.c:1068
WsExpression * ws_expr_conditional(WsCompilerPtr compiler, WsUInt32 line, WsExpression *e_cond, WsExpression *e_then, WsExpression *e_else)
Definition: wsstree.c:925
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
Definition: wsgram.c:462
WsExpression * ws_expr_comma(WsCompilerPtr compiler, WsUInt32 line, WsExpression *left, WsExpression *right)
Definition: wsstree.c:889
#define WS_ASM_B_RSZSHIFT
Definition: wsasm.h:196
static void yydestruct(const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, WsCompiler *compiler)
Definition: wsgram.c:1493
WsFastMalloc * pool_stree
Definition: wsint.h:204
WsStatement * ws_stmt_block(WsCompiler *compiler, WsUInt32 fline, WsUInt32 lline, WsList *block)
Definition: wsstree.c:1389
#define WS_ASM_UMINUS
Definition: wsasm.h:182
#define WS_ASM_GE
Definition: wsasm.h:201
WsPragmaMetaBody * meta_body
Definition: wsgram.c:311
#define YYLAST
Definition: wsgram.c:602
WsBool boolean
Definition: wsgram.c:306
void ws_lexer_free_utf8(WsCompiler *compiler, WsUtf8String *string)
Definition: ws.c:305
#define YY_(Msgid)
Definition: wsgram.c:411
static const yytype_uint8 yyr2[]
Definition: wsgram.c:994
#define YY_REDUCE_PRINT(Rule)
Definition: wsgram.c:1244
#define YYINITDEPTH
Definition: wsgram.c:1250
#define tADDA
Definition: wsgram.c:282
#define WS_ASM_B_AND
Definition: wsasm.h:190
#define WS_ASM_IDIV
Definition: wsasm.h:187
WsBool ws_bc_add_pragma_user_agent_property_and_scheme(WsBc *bc, const unsigned char *name, size_t name_len, const unsigned char *property, size_t property_len, const unsigned char *scheme, size_t scheme_len)
Definition: wsbc.c:1030
#define tANDA
Definition: wsgram.c:286
#define WS_ASM_MUL
Definition: wsasm.h:185
WsExpression * ws_expr_unary_var(WsCompilerPtr compiler, WsUInt32 line, WsBool addp, char *variable)
Definition: wsstree.c:993
#define WS_ASM_ADD
Definition: wsasm.h:183
WsExpression * ws_expr_assign(WsCompilerPtr compiler, WsUInt32 line, char *identifier, int op, WsExpression *expr)
Definition: wsstree.c:903
void ws_error_memory(WsCompilerPtr compiler)
Definition: wserror.c:107
#define YYSIZE_T
Definition: wsgram.c:395
void ws_list_append(WsCompiler *compiler, WsList *list, void *value)
Definition: wsstree.c:121
static const yytype_int16 yycheck[]
Definition: wsgram.c:892
WsUInt32 usage_count
Definition: wsstree.h:222
static const yytype_uint8 yydefact[]
Definition: wsgram.c:788
#define WS_ASM_SCAND
Definition: wsasm.h:206
#define WS_ASM_LT
Definition: wsasm.h:200
#define WS_ASM_SUB
Definition: wsasm.h:184

Variable Documentation

◆ yycheck

const yytype_int16 yycheck[]
static

Definition at line 892 of file wsgram.c.

Referenced by yyparse().

◆ yydefact

const yytype_uint8 yydefact[]
static
Initial value:
=
{
0, 8, 33, 0, 0, 0, 5, 3, 29, 0,
0, 0, 0, 0, 9, 10, 11, 1, 8, 6,
2, 30, 0, 0, 0, 13, 0, 0, 0, 17,
18, 19, 20, 0, 7, 0, 14, 15, 0, 26,
21, 0, 0, 12, 34, 0, 22, 27, 24, 23,
38, 0, 35, 16, 28, 25, 0, 0, 50, 0,
36, 39, 136, 137, 138, 139, 140, 141, 135, 0,
0, 0, 0, 0, 69, 0, 0, 0, 0, 0,
42, 0, 0, 0, 0, 0, 53, 40, 0, 0,
41, 44, 45, 65, 48, 0, 71, 73, 87, 89,
91, 93, 95, 97, 99, 102, 107, 111, 114, 119,
128, 131, 37, 31, 0, 129, 130, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 132, 47, 46, 69, 0, 135, 121, 0,
70, 120, 56, 60, 0, 57, 0, 122, 123, 0,
124, 125, 126, 127, 49, 54, 43, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 86,
78, 79, 75, 76, 83, 85, 84, 77, 80, 81,
82, 143, 145, 0, 74, 0, 0, 0, 0, 0,
68, 0, 59, 55, 0, 0, 142, 72, 90, 0,
92, 94, 96, 98, 100, 101, 105, 106, 103, 104,
108, 109, 110, 112, 113, 117, 115, 116, 118, 144,
0, 133, 134, 0, 69, 0, 61, 58, 0, 0,
146, 69, 0, 63, 64, 88, 0, 69, 0, 69,
0, 62, 0, 0, 0, 66, 67
}

Definition at line 788 of file wsgram.c.

Referenced by yyparse().

◆ yydefgoto

const yytype_int16 yydefgoto[]
static
Initial value:
=
{
-1, 4, 5, 6, 13, 14, 15, 25, 16, 29,
30, 31, 32, 40, 41, 48, 55, 7, 8, 9,
51, 113, 52, 86, 87, 88, 89, 90, 144, 145,
202, 91, 92, 93, 94, 139, 95, 96, 97, 98,
99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
109, 110, 111, 132, 193
}

Definition at line 830 of file wsgram.c.

Referenced by yyparse().

◆ yypact

const yytype_int16 yypact[]
static
Initial value:
=
{
59, 39, -135, 28, 68, 63, -135, 38, -135, 62,
37, 54, 13, -43, -135, -135, -135, -135, -135, -135,
38, -135, 57, 67, 87, -135, 92, 108, 109, -135,
-135, -135, -135, 121, -135, 47, 123, -135, 108, -135,
-135, 141, 108, -135, 155, 164, -135, -135, 166, -135,
-135, 89, 107, -135, -135, -135, 1, 188, -135, 132,
112, -135, -135, -135, -135, -135, -135, -135, 340, 115,
120, 124, 125, 296, 308, 296, 35, 126, 198, 201,
-135, 308, 296, 296, 296, 296, -135, -135, 129, 175,
-135, -135, -135, -135, -135, -83, -135, -135, -48, 146,
122, 119, 127, 12, -25, 45, 5, 44, -135, -135,
-135, -135, -135, -135, 308, -135, -135, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308, 222, 308,
207, 212, -135, -135, -135, 264, 308, -38, -135, 148,
147, -135, -135, 143, -1, -135, 308, -135, -135, 43,
-135, -135, -135, -135, -135, -135, -135, 308, 296, 308,
296, 296, 296, 296, 296, 296, 296, 296, 296, 296,
296, 296, 296, 296, 296, 296, 296, 296, 296, -135,
-135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
-135, -135, -135, 66, -135, 152, 152, 231, 156, 70,
-135, 296, -135, -135, 231, 82, -135, -135, 146, 149,
122, 119, 127, 12, -25, -25, 45, 45, 45, 45,
5, 5, 5, 44, 44, -135, -135, -135, -135, -135,
308, -135, -135, 25, 308, 22, -135, -135, 22, 308,
-135, 308, 158, 224, -135, -135, 162, 308, 22, 308,
161, -135, 163, 22, 22, -135, -135
}

Definition at line 755 of file wsgram.c.

Referenced by yyparse().

◆ yypgoto

const yytype_int16 yypgoto[]
static
Initial value:
=
{
-135, -135, -135, 245, -135, -135, -135, -135, -135, -135,
-135, -135, -135, 29, -135, -135, -135, 248, 17, -135,
-135, -135, -135, -85, 199, -135, -135, -135, 60, 50,
-135, -135, -135, -135, -135, -134, -74, -109, 55, -135,
100, 99, 102, 98, 101, -22, -65, -46, 20, 14,
-135, -135, -135, -10, -135
}

Definition at line 819 of file wsgram.c.

Referenced by yyparse().

◆ yyr1

const yytype_uint8 yyr1[]
static
Initial value:
=
{
0, 109, 110, 110, 110, 111, 111, 112, 112, 113,
113, 113, 114, 115, 116, 116, 116, 117, 118, 118,
118, 119, 120, 121, 122, 122, 123, 124, 125, 126,
126, 127, 128, 128, 129, 129, 130, 130, 131, 131,
132, 132, 132, 132, 132, 132, 132, 132, 132, 133,
133, 134, 134, 135, 135, 136, 136, 137, 137, 138,
139, 139, 140, 140, 141, 141, 142, 142, 143, 144,
144, 145, 145, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 147, 147, 148,
148, 149, 149, 150, 150, 151, 151, 152, 152, 153,
153, 153, 154, 154, 154, 154, 154, 155, 155, 155,
155, 156, 156, 156, 157, 157, 157, 157, 157, 158,
158, 158, 158, 158, 158, 158, 158, 158, 159, 159,
159, 160, 160, 160, 160, 161, 161, 161, 161, 161,
161, 161, 161, 162, 162, 163, 163
}

Definition at line 974 of file wsgram.c.

Referenced by yyparse().

◆ yyr2

const yytype_uint8 yyr2[]
static
Initial value:
=
{
0, 2, 2, 1, 1, 1, 2, 3, 1, 1,
1, 1, 3, 2, 2, 2, 4, 2, 1, 1,
1, 2, 3, 3, 2, 3, 1, 1, 1, 1,
2, 8, 0, 1, 0, 1, 0, 1, 1, 3,
1, 1, 1, 2, 1, 1, 2, 2, 1, 3,
1, 0, 1, 1, 2, 3, 2, 1, 3, 2,
0, 2, 7, 5, 5, 1, 9, 10, 3, 0,
1, 1, 3, 1, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 1, 5, 1,
3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
3, 1, 3, 3, 1, 3, 3, 3, 3, 1,
2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
2, 1, 2, 4, 4, 1, 1, 1, 1, 1,
1, 1, 3, 2, 3, 1, 3
}

Definition at line 994 of file wsgram.c.

Referenced by yyparse().

◆ yystos

const yytype_uint8 yystos[]
static
Initial value:
=
{
0, 1, 19, 31, 110, 111, 112, 126, 127, 128,
10, 26, 35, 113, 114, 115, 117, 0, 1, 112,
126, 127, 21, 16, 28, 116, 23, 27, 32, 118,
119, 120, 121, 9, 86, 9, 8, 8, 18, 8,
122, 123, 11, 8, 87, 28, 122, 8, 124, 122,
9, 129, 131, 8, 8, 125, 88, 89, 1, 90,
133, 9, 3, 4, 5, 6, 7, 8, 9, 12,
13, 20, 24, 25, 29, 30, 33, 34, 70, 71,
86, 87, 100, 101, 105, 106, 132, 133, 134, 135,
136, 140, 141, 142, 143, 145, 146, 147, 148, 149,
150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 161, 86, 130, 15, 70, 71, 75, 76, 77,
78, 79, 80, 81, 82, 83, 84, 85, 87, 92,
107, 108, 162, 86, 86, 87, 87, 9, 158, 144,
145, 158, 1, 9, 137, 138, 87, 9, 9, 145,
158, 158, 158, 158, 91, 132, 86, 89, 69, 93,
68, 95, 96, 97, 64, 67, 65, 66, 98, 99,
72, 73, 74, 100, 101, 14, 102, 103, 104, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
146, 88, 146, 163, 146, 9, 9, 33, 144, 145,
86, 92, 139, 86, 89, 145, 88, 146, 149, 146,
150, 151, 152, 153, 154, 154, 155, 155, 155, 155,
156, 156, 156, 157, 157, 158, 158, 158, 158, 88,
89, 162, 162, 137, 86, 88, 147, 138, 88, 94,
146, 86, 144, 132, 132, 146, 144, 86, 17, 86,
144, 132, 144, 88, 88, 132, 132
}

Definition at line 943 of file wsgram.c.

Referenced by yyparse().

◆ yytable

const yytype_int16 yytable[]
static

Definition at line 843 of file wsgram.c.

Referenced by yyparse().

◆ yytranslate

const yytype_uint8 yytranslate[]
static

Definition at line 623 of file wsgram.c.

See file LICENSE for details about the license agreement for using, modifying, copying or deriving work from this software.