/ Hex Artifact Content
Login

Artifact c7dde8fae568759a1a136b1acf35c4084864d035:


0000: 2f 2a 0a 2a 2a 20 32 30 30 30 2d 30 35 2d 32 39  /*.** 2000-05-29
0010: 0a 2a 2a 0a 2a 2a 20 54 68 65 20 61 75 74 68 6f  .**.** The autho
0020: 72 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70 79  r disclaims copy
0030: 72 69 67 68 74 20 74 6f 20 74 68 69 73 20 73 6f  right to this so
0040: 75 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20 70  urce code.  In p
0050: 6c 61 63 65 20 6f 66 0a 2a 2a 20 61 20 6c 65 67  lace of.** a leg
0060: 61 6c 20 6e 6f 74 69 63 65 2c 20 68 65 72 65 20  al notice, here 
0070: 69 73 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a 2a  is a blessing:.*
0080: 2a 0a 2a 2a 20 20 20 20 4d 61 79 20 79 6f 75 20  *.**    May you 
0090: 64 6f 20 67 6f 6f 64 20 61 6e 64 20 6e 6f 74 20  do good and not 
00a0: 65 76 69 6c 2e 0a 2a 2a 20 20 20 20 4d 61 79 20  evil..**    May 
00b0: 79 6f 75 20 66 69 6e 64 20 66 6f 72 67 69 76 65  you find forgive
00c0: 6e 65 73 73 20 66 6f 72 20 79 6f 75 72 73 65 6c  ness for yoursel
00d0: 66 20 61 6e 64 20 66 6f 72 67 69 76 65 20 6f 74  f and forgive ot
00e0: 68 65 72 73 2e 0a 2a 2a 20 20 20 20 4d 61 79 20  hers..**    May 
00f0: 79 6f 75 20 73 68 61 72 65 20 66 72 65 65 6c 79  you share freely
0100: 2c 20 6e 65 76 65 72 20 74 61 6b 69 6e 67 20 6d  , never taking m
0110: 6f 72 65 20 74 68 61 6e 20 79 6f 75 20 67 69 76  ore than you giv
0120: 65 2e 0a 2a 2a 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  e..**.**********
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a  ***************.
0170: 2a 2a 20 44 72 69 76 65 72 20 74 65 6d 70 6c 61  ** Driver templa
0180: 74 65 20 66 6f 72 20 74 68 65 20 4c 45 4d 4f 4e  te for the LEMON
0190: 20 70 61 72 73 65 72 20 67 65 6e 65 72 61 74 6f   parser generato
01a0: 72 2e 0a 2a 2a 0a 2a 2a 20 54 68 65 20 22 6c 65  r..**.** The "le
01b0: 6d 6f 6e 22 20 70 72 6f 67 72 61 6d 20 70 72 6f  mon" program pro
01c0: 63 65 73 73 65 73 20 61 6e 20 4c 41 4c 52 28 31  cesses an LALR(1
01d0: 29 20 69 6e 70 75 74 20 67 72 61 6d 6d 61 72 20  ) input grammar 
01e0: 66 69 6c 65 2c 20 74 68 65 6e 20 75 73 65 73 0a  file, then uses.
01f0: 2a 2a 20 74 68 69 73 20 74 65 6d 70 6c 61 74 65  ** this template
0200: 20 74 6f 20 63 6f 6e 73 74 72 75 63 74 20 61 20   to construct a 
0210: 70 61 72 73 65 72 2e 20 20 54 68 65 20 22 6c 65  parser.  The "le
0220: 6d 6f 6e 22 20 70 72 6f 67 72 61 6d 20 69 6e 73  mon" program ins
0230: 65 72 74 73 20 74 65 78 74 0a 2a 2a 20 61 74 20  erts text.** at 
0240: 65 61 63 68 20 22 25 25 22 20 6c 69 6e 65 2e 20  each "%%" line. 
0250: 20 41 6c 73 6f 2c 20 61 6e 79 20 22 50 2d 61 2d   Also, any "P-a-
0260: 72 2d 73 2d 65 22 20 69 64 65 6e 74 69 66 65 72  r-s-e" identifer
0270: 20 70 72 65 66 69 78 20 28 77 69 74 68 6f 75 74   prefix (without
0280: 20 74 68 65 0a 2a 2a 20 69 6e 74 65 72 73 74 69   the.** intersti
0290: 74 69 61 6c 20 22 2d 22 20 63 68 61 72 61 63 74  tial "-" charact
02a0: 65 72 73 29 20 63 6f 6e 74 61 69 6e 65 64 20 69  ers) contained i
02b0: 6e 20 74 68 69 73 20 74 65 6d 70 6c 61 74 65 20  n this template 
02c0: 69 73 20 63 68 61 6e 67 65 64 20 69 6e 74 6f 0a  is changed into.
02d0: 2a 2a 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20  ** the value of 
02e0: 74 68 65 20 25 6e 61 6d 65 20 64 69 72 65 63 74  the %name direct
02f0: 69 76 65 20 66 72 6f 6d 20 74 68 65 20 67 72 61  ive from the gra
0300: 6d 6d 61 72 2e 20 20 4f 74 68 65 72 77 69 73 65  mmar.  Otherwise
0310: 2c 20 74 68 65 20 63 6f 6e 74 65 6e 74 0a 2a 2a  , the content.**
0320: 20 6f 66 20 74 68 69 73 20 74 65 6d 70 6c 61 74   of this templat
0330: 65 20 69 73 20 63 6f 70 69 65 64 20 73 74 72 61  e is copied stra
0340: 69 67 68 74 20 74 68 72 6f 75 67 68 20 69 6e 74  ight through int
0350: 6f 20 74 68 65 20 67 65 6e 65 72 61 74 65 20 70  o the generate p
0360: 61 72 73 65 72 0a 2a 2a 20 73 6f 75 72 63 65 20  arser.** source 
0370: 66 69 6c 65 2e 0a 2a 2a 0a 2a 2a 20 54 68 65 20  file..**.** The 
0380: 66 6f 6c 6c 6f 77 69 6e 67 20 69 73 20 74 68 65  following is the
0390: 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 20 6f   concatenation o
03a0: 66 20 61 6c 6c 20 25 69 6e 63 6c 75 64 65 20 64  f all %include d
03b0: 69 72 65 63 74 69 76 65 73 20 66 72 6f 6d 20 74  irectives from t
03c0: 68 65 0a 2a 2a 20 69 6e 70 75 74 20 67 72 61 6d  he.** input gram
03d0: 6d 61 72 20 66 69 6c 65 3a 0a 2a 2f 0a 23 69 6e  mar file:.*/.#in
03e0: 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 0a  clude <stdio.h>.
03f0: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 42 65  /************ Be
0400: 67 69 6e 20 25 69 6e 63 6c 75 64 65 20 73 65 63  gin %include sec
0410: 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 65 20 67  tions from the g
0420: 72 61 6d 6d 61 72 20 2a 2a 2a 2a 2a 2a 2a 2a 2a  rammar *********
0430: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f  ***************/
0440: 0a 25 25 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  .%%./***********
0450: 2a 2a 2a 2a 2a 20 45 6e 64 20 6f 66 20 25 69 6e  ***** End of %in
0460: 63 6c 75 64 65 20 64 69 72 65 63 74 69 76 65 73  clude directives
0470: 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ***************
0480: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0490: 2a 2a 2a 2f 0a 2f 2a 20 54 68 65 73 65 20 63 6f  ***/./* These co
04a0: 6e 73 74 61 6e 74 73 20 73 70 65 63 69 66 79 20  nstants specify 
04b0: 74 68 65 20 76 61 72 69 6f 75 73 20 6e 75 6d 65  the various nume
04c0: 72 69 63 20 76 61 6c 75 65 73 20 66 6f 72 20 74  ric values for t
04d0: 65 72 6d 69 6e 61 6c 20 73 79 6d 62 6f 6c 73 0a  erminal symbols.
04e0: 2a 2a 20 69 6e 20 61 20 66 6f 72 6d 61 74 20 75  ** in a format u
04f0: 6e 64 65 72 73 74 61 6e 64 61 62 6c 65 20 74 6f  nderstandable to
0500: 20 22 6d 61 6b 65 68 65 61 64 65 72 73 22 2e 20   "makeheaders". 
0510: 20 54 68 69 73 20 73 65 63 74 69 6f 6e 20 69 73   This section is
0520: 20 62 6c 61 6e 6b 20 75 6e 6c 65 73 73 0a 2a 2a   blank unless.**
0530: 20 22 6c 65 6d 6f 6e 22 20 69 73 20 72 75 6e 20   "lemon" is run 
0540: 77 69 74 68 20 74 68 65 20 22 2d 6d 22 20 63 6f  with the "-m" co
0550: 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6f 70 74 69 6f  mmand-line optio
0560: 6e 2e 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  n..*************
0570: 2a 2a 2a 2a 20 42 65 67 69 6e 20 6d 61 6b 65 68  **** Begin makeh
0580: 65 61 64 65 72 73 20 74 6f 6b 65 6e 20 64 65 66  eaders token def
0590: 69 6e 69 74 69 6f 6e 73 20 2a 2a 2a 2a 2a 2a 2a  initions *******
05a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
05b0: 2a 2a 2f 0a 25 25 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a  **/.%%./********
05c0: 2a 2a 2a 2a 2a 2a 2a 2a 20 45 6e 64 20 6d 61 6b  ******** End mak
05d0: 65 68 65 61 64 65 72 73 20 74 6f 6b 65 6e 20 64  eheaders token d
05e0: 65 66 69 6e 69 74 69 6f 6e 73 20 2a 2a 2a 2a 2a  efinitions *****
05f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0600: 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a 20 54 68 65 20  ******/../* The 
0610: 6e 65 78 74 20 73 65 63 74 69 6f 6e 73 20 69 73  next sections is
0620: 20 61 20 73 65 72 69 65 73 20 6f 66 20 63 6f 6e   a series of con
0630: 74 72 6f 6c 20 23 64 65 66 69 6e 65 73 2e 0a 2a  trol #defines..*
0640: 2a 20 76 61 72 69 6f 75 73 20 61 73 70 65 63 74  * various aspect
0650: 73 20 6f 66 20 74 68 65 20 67 65 6e 65 72 61 74  s of the generat
0660: 65 64 20 70 61 72 73 65 72 2e 0a 2a 2a 20 20 20  ed parser..**   
0670: 20 59 59 43 4f 44 45 54 59 50 45 20 20 20 20 20   YYCODETYPE     
0680: 20 20 20 20 69 73 20 74 68 65 20 64 61 74 61 20      is the data 
0690: 74 79 70 65 20 75 73 65 64 20 74 6f 20 73 74 6f  type used to sto
06a0: 72 65 20 74 68 65 20 69 6e 74 65 67 65 72 20 63  re the integer c
06b0: 6f 64 65 73 0a 2a 2a 20 20 20 20 20 20 20 20 20  odes.**         
06c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68                th
06d0: 61 74 20 72 65 70 72 65 73 65 6e 74 20 74 65 72  at represent ter
06e0: 6d 69 6e 61 6c 20 61 6e 64 20 6e 6f 6e 2d 74 65  minal and non-te
06f0: 72 6d 69 6e 61 6c 20 73 79 6d 62 6f 6c 73 2e 0a  rminal symbols..
0700: 2a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  **              
0710: 20 20 20 20 20 20 20 20 20 22 75 6e 73 69 67 6e           "unsign
0720: 65 64 20 63 68 61 72 22 20 69 73 20 75 73 65 64  ed char" is used
0730: 20 69 66 20 74 68 65 72 65 20 61 72 65 20 66 65   if there are fe
0740: 77 65 72 20 74 68 61 6e 0a 2a 2a 20 20 20 20 20  wer than.**     
0750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0760: 20 20 32 35 36 20 73 79 6d 62 6f 6c 73 2e 20 20    256 symbols.  
0770: 4c 61 72 67 65 72 20 74 79 70 65 73 20 6f 74 68  Larger types oth
0780: 65 72 77 69 73 65 2e 0a 2a 2a 20 20 20 20 59 59  erwise..**    YY
0790: 4e 4f 43 4f 44 45 20 20 20 20 20 20 20 20 20 20  NOCODE          
07a0: 20 69 73 20 61 20 6e 75 6d 62 65 72 20 6f 66 20   is a number of 
07b0: 74 79 70 65 20 59 59 43 4f 44 45 54 59 50 45 20  type YYCODETYPE 
07c0: 74 68 61 74 20 69 73 20 6e 6f 74 20 75 73 65 64  that is not used
07d0: 20 66 6f 72 0a 2a 2a 20 20 20 20 20 20 20 20 20   for.**         
07e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6e                an
07f0: 79 20 74 65 72 6d 69 6e 61 6c 20 6f 72 20 6e 6f  y terminal or no
0800: 6e 74 65 72 6d 69 6e 61 6c 20 73 79 6d 62 6f 6c  nterminal symbol
0810: 2e 0a 2a 2a 20 20 20 20 59 59 46 41 4c 4c 42 41  ..**    YYFALLBA
0820: 43 4b 20 20 20 20 20 20 20 20 20 49 66 20 64 65  CK         If de
0830: 66 69 6e 65 64 2c 20 74 68 69 73 20 69 6e 64 69  fined, this indi
0840: 63 61 74 65 73 20 74 68 61 74 20 6f 6e 65 20 6f  cates that one o
0850: 72 20 6d 6f 72 65 20 74 6f 6b 65 6e 73 0a 2a 2a  r more tokens.**
0860: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0870: 20 20 20 20 20 20 20 28 61 6c 73 6f 20 6b 6e 6f         (also kno
0880: 77 6e 20 61 73 3a 20 22 74 65 72 6d 69 6e 61 6c  wn as: "terminal
0890: 20 73 79 6d 62 6f 6c 73 22 29 20 68 61 76 65 20   symbols") have 
08a0: 66 61 6c 6c 2d 62 61 63 6b 0a 2a 2a 20 20 20 20  fall-back.**    
08b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
08c0: 20 20 20 76 61 6c 75 65 73 20 77 68 69 63 68 20     values which 
08d0: 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 20 69  should be used i
08e0: 66 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 73  f the original s
08f0: 79 6d 62 6f 6c 0a 2a 2a 20 20 20 20 20 20 20 20  ymbol.**        
0900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77                 w
0910: 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 2e 20  ould not parse. 
0920: 20 54 68 69 73 20 70 65 72 6d 69 74 73 20 6b 65   This permits ke
0930: 79 77 6f 72 64 73 20 74 6f 20 73 6f 6d 65 74 69  ywords to someti
0940: 6d 65 73 0a 2a 2a 20 20 20 20 20 20 20 20 20 20  mes.**          
0950: 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 20               be 
0960: 75 73 65 64 20 61 73 20 69 64 65 6e 74 69 66 69  used as identifi
0970: 65 72 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65  ers, for example
0980: 2e 0a 2a 2a 20 20 20 20 59 59 41 43 54 49 4f 4e  ..**    YYACTION
0990: 54 59 50 45 20 20 20 20 20 20 20 69 73 20 74 68  TYPE       is th
09a0: 65 20 64 61 74 61 20 74 79 70 65 20 75 73 65 64  e data type used
09b0: 20 66 6f 72 20 22 61 63 74 69 6f 6e 20 63 6f 64   for "action cod
09c0: 65 73 22 20 2d 20 6e 75 6d 62 65 72 73 0a 2a 2a  es" - numbers.**
09d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
09e0: 20 20 20 20 20 20 20 74 68 61 74 20 69 6e 64 69         that indi
09f0: 63 61 74 65 20 77 68 61 74 20 74 6f 20 64 6f 20  cate what to do 
0a00: 69 6e 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 74  in response to t
0a10: 68 65 20 6e 65 78 74 0a 2a 2a 20 20 20 20 20 20  he next.**      
0a20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0a30: 20 74 6f 6b 65 6e 2e 0a 2a 2a 20 20 20 20 50 61   token..**    Pa
0a40: 72 73 65 54 4f 4b 45 4e 54 59 50 45 20 20 20 20  rseTOKENTYPE    
0a50: 20 69 73 20 74 68 65 20 64 61 74 61 20 74 79 70   is the data typ
0a60: 65 20 75 73 65 64 20 66 6f 72 20 6d 69 6e 6f 72  e used for minor
0a70: 20 74 79 70 65 20 66 6f 72 20 74 65 72 6d 69 6e   type for termin
0a80: 61 6c 0a 2a 2a 20 20 20 20 20 20 20 20 20 20 20  al.**           
0a90: 20 20 20 20 20 20 20 20 20 20 20 20 73 79 6d 62              symb
0aa0: 6f 6c 73 2e 20 20 42 61 63 6b 67 72 6f 75 6e 64  ols.  Background
0ab0: 3a 20 41 20 22 6d 69 6e 6f 72 20 74 79 70 65 22  : A "minor type"
0ac0: 20 69 73 20 61 20 73 65 6d 61 6e 74 69 63 0a 2a   is a semantic.*
0ad0: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  *               
0ae0: 20 20 20 20 20 20 20 20 76 61 6c 75 65 20 61 73          value as
0af0: 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 61 20  sociated with a 
0b00: 74 65 72 6d 69 6e 61 6c 20 6f 72 20 6e 6f 6e 2d  terminal or non-
0b10: 74 65 72 6d 69 6e 61 6c 0a 2a 2a 20 20 20 20 20  terminal.**     
0b20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0b30: 20 20 73 79 6d 62 6f 6c 73 2e 20 20 46 6f 72 20    symbols.  For 
0b40: 65 78 61 6d 70 6c 65 2c 20 66 6f 72 20 61 6e 20  example, for an 
0b50: 22 49 44 22 20 74 65 72 6d 69 6e 61 6c 20 73 79  "ID" terminal sy
0b60: 6d 62 6f 6c 2c 0a 2a 2a 20 20 20 20 20 20 20 20  mbol,.**        
0b70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74                 t
0b80: 68 65 20 6d 69 6e 6f 72 20 74 79 70 65 20 6d 69  he minor type mi
0b90: 67 68 74 20 62 65 20 74 68 65 20 6e 61 6d 65 20  ght be the name 
0ba0: 6f 66 20 74 68 65 20 69 64 65 6e 74 69 66 69 65  of the identifie
0bb0: 72 2e 0a 2a 2a 20 20 20 20 20 20 20 20 20 20 20  r..**           
0bc0: 20 20 20 20 20 20 20 20 20 20 20 20 45 61 63 68              Each
0bd0: 20 6e 6f 6e 2d 74 65 72 6d 69 6e 61 6c 20 63 61   non-terminal ca
0be0: 6e 20 68 61 76 65 20 61 20 64 69 66 66 65 72 65  n have a differe
0bf0: 6e 74 20 6d 69 6e 6f 72 20 74 79 70 65 2e 0a 2a  nt minor type..*
0c00: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  *               
0c10: 20 20 20 20 20 20 20 20 54 65 72 6d 69 6e 61 6c          Terminal
0c20: 20 73 79 6d 62 6f 6c 73 20 61 6c 6c 20 68 61 76   symbols all hav
0c30: 65 20 74 68 65 20 73 61 6d 65 20 6d 69 6e 6f 72  e the same minor
0c40: 20 74 79 70 65 2c 20 74 68 6f 75 67 68 2e 0a 2a   type, though..*
0c50: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  *               
0c60: 20 20 20 20 20 20 20 20 54 68 69 73 20 6d 61 63          This mac
0c70: 72 6f 73 20 64 65 66 69 6e 65 73 20 74 68 65 20  ros defines the 
0c80: 6d 69 6e 6f 72 20 74 79 70 65 20 66 6f 72 20 74  minor type for t
0c90: 65 72 6d 69 6e 61 6c 20 0a 2a 2a 20 20 20 20 20  erminal .**     
0ca0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0cb0: 20 20 73 79 6d 62 6f 6c 73 2e 0a 2a 2a 20 20 20    symbols..**   
0cc0: 20 59 59 4d 49 4e 4f 52 54 59 50 45 20 20 20 20   YYMINORTYPE    
0cd0: 20 20 20 20 69 73 20 74 68 65 20 64 61 74 61 20      is the data 
0ce0: 74 79 70 65 20 75 73 65 64 20 66 6f 72 20 61 6c  type used for al
0cf0: 6c 20 6d 69 6e 6f 72 20 74 79 70 65 73 2e 0a 2a  l minor types..*
0d00: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  *               
0d10: 20 20 20 20 20 20 20 20 54 68 69 73 20 69 73 20          This is 
0d20: 74 79 70 69 63 61 6c 6c 79 20 61 20 75 6e 69 6f  typically a unio
0d30: 6e 20 6f 66 20 6d 61 6e 79 20 74 79 70 65 73 2c  n of many types,
0d40: 20 6f 6e 65 20 6f 66 0a 2a 2a 20 20 20 20 20 20   one of.**      
0d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0d60: 20 77 68 69 63 68 20 69 73 20 50 61 72 73 65 54   which is ParseT
0d70: 4f 4b 45 4e 54 59 50 45 2e 20 20 54 68 65 20 65  OKENTYPE.  The e
0d80: 6e 74 72 79 20 69 6e 20 74 68 65 20 75 6e 69 6f  ntry in the unio
0d90: 6e 0a 2a 2a 20 20 20 20 20 20 20 20 20 20 20 20  n.**            
0da0: 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74             for t
0db0: 65 72 6d 69 6e 61 6c 20 73 79 6d 62 6f 6c 73 20  erminal symbols 
0dc0: 69 73 20 63 61 6c 6c 65 64 20 22 79 79 30 22 2e  is called "yy0".
0dd0: 0a 2a 2a 20 20 20 20 59 59 53 54 41 43 4b 44 45  .**    YYSTACKDE
0de0: 50 54 48 20 20 20 20 20 20 20 69 73 20 74 68 65  PTH       is the
0df0: 20 6d 61 78 69 6d 75 6d 20 64 65 70 74 68 20 6f   maximum depth o
0e00: 66 20 74 68 65 20 70 61 72 73 65 72 27 73 20 73  f the parser's s
0e10: 74 61 63 6b 2e 20 20 49 66 0a 2a 2a 20 20 20 20  tack.  If.**    
0e20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0e30: 20 20 20 7a 65 72 6f 20 74 68 65 20 73 74 61 63     zero the stac
0e40: 6b 20 69 73 20 64 79 6e 61 6d 69 63 61 6c 6c 79  k is dynamically
0e50: 20 73 69 7a 65 64 20 75 73 69 6e 67 20 72 65 61   sized using rea
0e60: 6c 6c 6f 63 28 29 0a 2a 2a 20 20 20 20 50 61 72  lloc().**    Par
0e70: 73 65 41 52 47 5f 53 44 45 43 4c 20 20 20 20 20  seARG_SDECL     
0e80: 41 20 73 74 61 74 69 63 20 76 61 72 69 61 62 6c  A static variabl
0e90: 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 66 6f  e declaration fo
0ea0: 72 20 74 68 65 20 25 65 78 74 72 61 5f 61 72 67  r the %extra_arg
0eb0: 75 6d 65 6e 74 0a 2a 2a 20 20 20 20 50 61 72 73  ument.**    Pars
0ec0: 65 41 52 47 5f 50 44 45 43 4c 20 20 20 20 20 41  eARG_PDECL     A
0ed0: 20 70 61 72 61 6d 65 74 65 72 20 64 65 63 6c 61   parameter decla
0ee0: 72 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 25  ration for the %
0ef0: 65 78 74 72 61 5f 61 72 67 75 6d 65 6e 74 0a 2a  extra_argument.*
0f00: 2a 20 20 20 20 50 61 72 73 65 41 52 47 5f 53 54  *    ParseARG_ST
0f10: 4f 52 45 20 20 20 20 20 43 6f 64 65 20 74 6f 20  ORE     Code to 
0f20: 73 74 6f 72 65 20 25 65 78 74 72 61 5f 61 72 67  store %extra_arg
0f30: 75 6d 65 6e 74 20 69 6e 74 6f 20 79 79 70 50 61  ument into yypPa
0f40: 72 73 65 72 0a 2a 2a 20 20 20 20 50 61 72 73 65  rser.**    Parse
0f50: 41 52 47 5f 46 45 54 43 48 20 20 20 20 20 43 6f  ARG_FETCH     Co
0f60: 64 65 20 74 6f 20 65 78 74 72 61 63 74 20 25 65  de to extract %e
0f70: 78 74 72 61 5f 61 72 67 75 6d 65 6e 74 20 66 72  xtra_argument fr
0f80: 6f 6d 20 79 79 70 50 61 72 73 65 72 0a 2a 2a 20  om yypParser.** 
0f90: 20 20 20 59 59 45 52 52 4f 52 53 59 4d 42 4f 4c     YYERRORSYMBOL
0fa0: 20 20 20 20 20 20 69 73 20 74 68 65 20 63 6f 64        is the cod
0fb0: 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 20  e number of the 
0fc0: 65 72 72 6f 72 20 73 79 6d 62 6f 6c 2e 20 20 49  error symbol.  I
0fd0: 66 20 6e 6f 74 0a 2a 2a 20 20 20 20 20 20 20 20  f not.**        
0fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64                 d
0ff0: 65 66 69 6e 65 64 2c 20 74 68 65 6e 20 64 6f 20  efined, then do 
1000: 6e 6f 20 65 72 72 6f 72 20 70 72 6f 63 65 73 73  no error process
1010: 69 6e 67 2e 0a 2a 2a 20 20 20 20 59 59 4e 53 54  ing..**    YYNST
1020: 41 54 45 20 20 20 20 20 20 20 20 20 20 20 74 68  ATE           th
1030: 65 20 63 6f 6d 62 69 6e 65 64 20 6e 75 6d 62 65  e combined numbe
1040: 72 20 6f 66 20 73 74 61 74 65 73 2e 0a 2a 2a 20  r of states..** 
1050: 20 20 20 59 59 4e 52 55 4c 45 20 20 20 20 20 20     YYNRULE      
1060: 20 20 20 20 20 20 74 68 65 20 6e 75 6d 62 65 72        the number
1070: 20 6f 66 20 72 75 6c 65 73 20 69 6e 20 74 68 65   of rules in the
1080: 20 67 72 61 6d 6d 61 72 0a 2a 2a 20 20 20 20 59   grammar.**    Y
1090: 59 5f 4d 41 58 5f 53 48 49 46 54 20 20 20 20 20  Y_MAX_SHIFT     
10a0: 20 20 4d 61 78 69 6d 75 6d 20 76 61 6c 75 65 20    Maximum value 
10b0: 66 6f 72 20 73 68 69 66 74 20 61 63 74 69 6f 6e  for shift action
10c0: 73 0a 2a 2a 20 20 20 20 59 59 5f 4d 49 4e 5f 53  s.**    YY_MIN_S
10d0: 48 49 46 54 52 45 44 55 43 45 20 4d 69 6e 69 6d  HIFTREDUCE Minim
10e0: 75 6d 20 76 61 6c 75 65 20 66 6f 72 20 73 68 69  um value for shi
10f0: 66 74 2d 72 65 64 75 63 65 20 61 63 74 69 6f 6e  ft-reduce action
1100: 73 0a 2a 2a 20 20 20 20 59 59 5f 4d 41 58 5f 53  s.**    YY_MAX_S
1110: 48 49 46 54 52 45 44 55 43 45 20 4d 61 78 69 6d  HIFTREDUCE Maxim
1120: 75 6d 20 76 61 6c 75 65 20 66 6f 72 20 73 68 69  um value for shi
1130: 66 74 2d 72 65 64 75 63 65 20 61 63 74 69 6f 6e  ft-reduce action
1140: 73 0a 2a 2a 20 20 20 20 59 59 5f 4d 49 4e 5f 52  s.**    YY_MIN_R
1150: 45 44 55 43 45 20 20 20 20 20 20 4d 61 78 69 6d  EDUCE      Maxim
1160: 75 6d 20 76 61 6c 75 65 20 66 6f 72 20 72 65 64  um value for red
1170: 75 63 65 20 61 63 74 69 6f 6e 73 0a 2a 2a 20 20  uce actions.**  
1180: 20 20 59 59 5f 45 52 52 4f 52 5f 41 43 54 49 4f    YY_ERROR_ACTIO
1190: 4e 20 20 20 20 54 68 65 20 79 79 5f 61 63 74 69  N    The yy_acti
11a0: 6f 6e 5b 5d 20 63 6f 64 65 20 66 6f 72 20 73 79  on[] code for sy
11b0: 6e 74 61 78 20 65 72 72 6f 72 0a 2a 2a 20 20 20  ntax error.**   
11c0: 20 59 59 5f 41 43 43 45 50 54 5f 41 43 54 49 4f   YY_ACCEPT_ACTIO
11d0: 4e 20 20 20 54 68 65 20 79 79 5f 61 63 74 69 6f  N   The yy_actio
11e0: 6e 5b 5d 20 63 6f 64 65 20 66 6f 72 20 61 63 63  n[] code for acc
11f0: 65 70 74 0a 2a 2a 20 20 20 20 59 59 5f 4e 4f 5f  ept.**    YY_NO_
1200: 41 43 54 49 4f 4e 20 20 20 20 20 20 20 54 68 65  ACTION       The
1210: 20 79 79 5f 61 63 74 69 6f 6e 5b 5d 20 63 6f 64   yy_action[] cod
1220: 65 20 66 6f 72 20 6e 6f 2d 6f 70 0a 2a 2f 0a 23  e for no-op.*/.#
1230: 69 66 6e 64 65 66 20 49 4e 54 45 52 46 41 43 45  ifndef INTERFACE
1240: 0a 23 20 64 65 66 69 6e 65 20 49 4e 54 45 52 46  .# define INTERF
1250: 41 43 45 20 31 0a 23 65 6e 64 69 66 0a 2f 2a 2a  ACE 1.#endif./**
1260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 42 65 67 69  *********** Begi
1270: 6e 20 63 6f 6e 74 72 6f 6c 20 23 64 65 66 69 6e  n control #defin
1280: 65 73 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  es *************
1290: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
12a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 25 25  ************/.%%
12b0: 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20  ./************* 
12c0: 45 6e 64 20 63 6f 6e 74 72 6f 6c 20 23 64 65 66  End control #def
12d0: 69 6e 65 73 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ines ***********
12e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
12f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
1300: 2f 0a 0a 2f 2a 20 54 68 65 20 79 79 7a 65 72 6f  /../* The yyzero
1310: 6d 69 6e 6f 72 20 63 6f 6e 73 74 61 6e 74 20 69  minor constant i
1320: 73 20 75 73 65 64 20 74 6f 20 69 6e 69 74 69 61  s used to initia
1330: 6c 69 7a 65 20 69 6e 73 74 61 6e 63 65 73 20 6f  lize instances o
1340: 66 0a 2a 2a 20 59 59 4d 49 4e 4f 52 54 59 50 45  f.** YYMINORTYPE
1350: 20 6f 62 6a 65 63 74 73 20 74 6f 20 7a 65 72 6f   objects to zero
1360: 2e 20 2a 2f 0a 73 74 61 74 69 63 20 63 6f 6e 73  . */.static cons
1370: 74 20 59 59 4d 49 4e 4f 52 54 59 50 45 20 79 79  t YYMINORTYPE yy
1380: 7a 65 72 6f 6d 69 6e 6f 72 20 3d 20 7b 20 30 20  zerominor = { 0 
1390: 7d 3b 0a 0a 2f 2a 20 44 65 66 69 6e 65 20 74 68  };../* Define th
13a0: 65 20 79 79 74 65 73 74 63 61 73 65 28 29 20 6d  e yytestcase() m
13b0: 61 63 72 6f 20 74 6f 20 62 65 20 61 20 6e 6f 2d  acro to be a no-
13c0: 6f 70 20 69 66 20 69 73 20 6e 6f 74 20 61 6c 72  op if is not alr
13d0: 65 61 64 79 20 64 65 66 69 6e 65 64 0a 2a 2a 20  eady defined.** 
13e0: 6f 74 68 65 72 77 69 73 65 2e 0a 2a 2a 0a 2a 2a  otherwise..**.**
13f0: 20 41 70 70 6c 69 63 61 74 69 6f 6e 73 20 63 61   Applications ca
1400: 6e 20 63 68 6f 6f 73 65 20 74 6f 20 64 65 66 69  n choose to defi
1410: 6e 65 20 79 79 74 65 73 74 63 61 73 65 28 29 20  ne yytestcase() 
1420: 69 6e 20 74 68 65 20 25 69 6e 63 6c 75 64 65 20  in the %include 
1430: 73 65 63 74 69 6f 6e 0a 2a 2a 20 74 6f 20 61 20  section.** to a 
1440: 6d 61 63 72 6f 20 74 68 61 74 20 63 61 6e 20 61  macro that can a
1450: 73 73 69 73 74 20 69 6e 20 76 65 72 69 66 79 69  ssist in verifyi
1460: 6e 67 20 63 6f 64 65 20 63 6f 76 65 72 61 67 65  ng code coverage
1470: 2e 20 20 46 6f 72 20 70 72 6f 64 75 63 74 69 6f  .  For productio
1480: 6e 0a 2a 2a 20 63 6f 64 65 20 74 68 65 20 79 79  n.** code the yy
1490: 74 65 73 74 63 61 73 65 28 29 20 6d 61 63 72 6f  testcase() macro
14a0: 20 73 68 6f 75 6c 64 20 62 65 20 74 75 72 6e 65   should be turne
14b0: 64 20 6f 66 66 2e 20 20 42 75 74 20 69 74 20 69  d off.  But it i
14c0: 73 20 75 73 65 66 75 6c 0a 2a 2a 20 66 6f 72 20  s useful.** for 
14d0: 74 65 73 74 69 6e 67 2e 0a 2a 2f 0a 23 69 66 6e  testing..*/.#ifn
14e0: 64 65 66 20 79 79 74 65 73 74 63 61 73 65 0a 23  def yytestcase.#
14f0: 20 64 65 66 69 6e 65 20 79 79 74 65 73 74 63 61   define yytestca
1500: 73 65 28 58 29 0a 23 65 6e 64 69 66 0a 0a 0a 2f  se(X).#endif.../
1510: 2a 20 4e 65 78 74 20 61 72 65 20 74 68 65 20 74  * Next are the t
1520: 61 62 6c 65 73 20 75 73 65 64 20 74 6f 20 64 65  ables used to de
1530: 74 65 72 6d 69 6e 65 20 77 68 61 74 20 61 63 74  termine what act
1540: 69 6f 6e 20 74 6f 20 74 61 6b 65 20 62 61 73 65  ion to take base
1550: 64 20 6f 6e 20 74 68 65 0a 2a 2a 20 63 75 72 72  d on the.** curr
1560: 65 6e 74 20 73 74 61 74 65 20 61 6e 64 20 6c 6f  ent state and lo
1570: 6f 6b 61 68 65 61 64 20 74 6f 6b 65 6e 2e 20 20  okahead token.  
1580: 54 68 65 73 65 20 74 61 62 6c 65 73 20 61 72 65  These tables are
1590: 20 75 73 65 64 20 74 6f 20 69 6d 70 6c 65 6d 65   used to impleme
15a0: 6e 74 0a 2a 2a 20 66 75 6e 63 74 69 6f 6e 73 20  nt.** functions 
15b0: 74 68 61 74 20 74 61 6b 65 20 61 20 73 74 61 74  that take a stat
15c0: 65 20 6e 75 6d 62 65 72 20 61 6e 64 20 6c 6f 6f  e number and loo
15d0: 6b 61 68 65 61 64 20 76 61 6c 75 65 20 61 6e 64  kahead value and
15e0: 20 72 65 74 75 72 6e 20 61 6e 0a 2a 2a 20 61 63   return an.** ac
15f0: 74 69 6f 6e 20 69 6e 74 65 67 65 72 2e 20 20 0a  tion integer.  .
1600: 2a 2a 0a 2a 2a 20 53 75 70 70 6f 73 65 20 74 68  **.** Suppose th
1610: 65 20 61 63 74 69 6f 6e 20 69 6e 74 65 67 65 72  e action integer
1620: 20 69 73 20 4e 2e 20 20 54 68 65 6e 20 74 68 65   is N.  Then the
1630: 20 61 63 74 69 6f 6e 20 69 73 20 64 65 74 65 72   action is deter
1640: 6d 69 6e 65 64 20 61 73 0a 2a 2a 20 66 6f 6c 6c  mined as.** foll
1650: 6f 77 73 0a 2a 2a 0a 2a 2a 20 20 20 30 20 3c 3d  ows.**.**   0 <=
1660: 20 4e 20 3c 3d 20 59 59 5f 4d 41 58 5f 53 48 49   N <= YY_MAX_SHI
1670: 46 54 20 20 20 20 20 20 20 20 20 20 20 20 20 53  FT             S
1680: 68 69 66 74 20 4e 2e 20 20 54 68 61 74 20 69 73  hift N.  That is
1690: 2c 20 70 75 73 68 20 74 68 65 20 6c 6f 6f 6b 61  , push the looka
16a0: 68 65 61 64 0a 2a 2a 20 20 20 20 20 20 20 20 20  head.**         
16b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 6b               tok
16d0: 65 6e 20 6f 6e 74 6f 20 74 68 65 20 73 74 61 63  en onto the stac
16e0: 6b 20 61 6e 64 20 67 6f 74 6f 20 73 74 61 74 65  k and goto state
16f0: 20 4e 2e 0a 2a 2a 0a 2a 2a 20 20 20 4e 20 62 65   N..**.**   N be
1700: 74 77 65 65 6e 20 59 59 5f 4d 49 4e 5f 53 48 49  tween YY_MIN_SHI
1710: 46 54 52 45 44 55 43 45 20 20 20 20 20 20 20 53  FTREDUCE       S
1720: 68 69 66 74 20 74 6f 20 61 6e 20 61 72 62 69 74  hift to an arbit
1730: 72 61 72 79 20 73 74 61 74 65 20 74 68 65 6e 0a  rary state then.
1740: 2a 2a 20 20 20 20 20 61 6e 64 20 59 59 5f 4d 41  **     and YY_MA
1750: 58 5f 53 48 49 46 54 52 45 44 55 43 45 20 20 20  X_SHIFTREDUCE   
1760: 20 20 20 20 20 20 20 20 72 65 64 75 63 65 20 62          reduce b
1770: 79 20 72 75 6c 65 20 4e 2d 59 59 5f 4d 49 4e 5f  y rule N-YY_MIN_
1780: 53 48 49 46 54 52 45 44 55 43 45 2e 0a 2a 2a 0a  SHIFTREDUCE..**.
1790: 2a 2a 20 20 20 4e 20 62 65 74 77 65 65 6e 20 59  **   N between Y
17a0: 59 5f 4d 49 4e 5f 52 45 44 55 43 45 20 20 20 20  Y_MIN_REDUCE    
17b0: 20 20 20 20 20 20 20 20 52 65 64 75 63 65 20 62          Reduce b
17c0: 79 20 72 75 6c 65 20 4e 2d 59 59 5f 4d 49 4e 5f  y rule N-YY_MIN_
17d0: 52 45 44 55 43 45 0a 2a 2a 20 20 20 20 20 61 6e  REDUCE.**     an
17e0: 64 20 59 59 5f 4d 41 58 5f 52 45 44 55 43 45 0a  d YY_MAX_REDUCE.
17f0: 0a 2a 2a 20 20 20 4e 20 3d 3d 20 59 59 5f 45 52  .**   N == YY_ER
1800: 52 4f 52 5f 41 43 54 49 4f 4e 20 20 20 20 20 20  ROR_ACTION      
1810: 20 20 20 20 20 20 20 20 20 41 20 73 79 6e 74 61           A synta
1820: 78 20 65 72 72 6f 72 20 68 61 73 20 6f 63 63 75  x error has occu
1830: 72 72 65 64 2e 0a 2a 2a 0a 2a 2a 20 20 20 4e 20  rred..**.**   N 
1840: 3d 3d 20 59 59 5f 41 43 43 45 50 54 5f 41 43 54  == YY_ACCEPT_ACT
1850: 49 4f 4e 20 20 20 20 20 20 20 20 20 20 20 20 20  ION             
1860: 20 54 68 65 20 70 61 72 73 65 72 20 61 63 63 65   The parser acce
1870: 70 74 73 20 69 74 73 20 69 6e 70 75 74 2e 0a 2a  pts its input..*
1880: 2a 0a 2a 2a 20 20 20 4e 20 3d 3d 20 59 59 5f 4e  *.**   N == YY_N
1890: 4f 5f 41 43 54 49 4f 4e 20 20 20 20 20 20 20 20  O_ACTION        
18a0: 20 20 20 20 20 20 20 20 20 20 4e 6f 20 73 75 63            No suc
18b0: 68 20 61 63 74 69 6f 6e 2e 20 20 44 65 6e 6f 74  h action.  Denot
18c0: 65 73 20 75 6e 75 73 65 64 0a 2a 2a 20 20 20 20  es unused.**    
18d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f0: 20 20 73 6c 6f 74 73 20 69 6e 20 74 68 65 20 79    slots in the y
1900: 79 5f 61 63 74 69 6f 6e 5b 5d 20 74 61 62 6c 65  y_action[] table
1910: 2e 0a 2a 2a 0a 2a 2a 20 54 68 65 20 61 63 74 69  ..**.** The acti
1920: 6f 6e 20 74 61 62 6c 65 20 69 73 20 63 6f 6e 73  on table is cons
1930: 74 72 75 63 74 65 64 20 61 73 20 61 20 73 69 6e  tructed as a sin
1940: 67 6c 65 20 6c 61 72 67 65 20 74 61 62 6c 65 20  gle large table 
1950: 6e 61 6d 65 64 20 79 79 5f 61 63 74 69 6f 6e 5b  named yy_action[
1960: 5d 2e 0a 2a 2a 20 47 69 76 65 6e 20 73 74 61 74  ]..** Given stat
1970: 65 20 53 20 61 6e 64 20 6c 6f 6f 6b 61 68 65 61  e S and lookahea
1980: 64 20 58 2c 20 74 68 65 20 61 63 74 69 6f 6e 20  d X, the action 
1990: 69 73 20 63 6f 6d 70 75 74 65 64 20 61 73 0a 2a  is computed as.*
19a0: 2a 0a 2a 2a 20 20 20 20 20 20 79 79 5f 61 63 74  *.**      yy_act
19b0: 69 6f 6e 5b 20 79 79 5f 73 68 69 66 74 5f 6f 66  ion[ yy_shift_of
19c0: 73 74 5b 53 5d 20 2b 20 58 20 5d 0a 2a 2a 0a 2a  st[S] + X ].**.*
19d0: 2a 20 49 66 20 74 68 65 20 69 6e 64 65 78 20 76  * If the index v
19e0: 61 6c 75 65 20 79 79 5f 73 68 69 66 74 5f 6f 66  alue yy_shift_of
19f0: 73 74 5b 53 5d 2b 58 20 69 73 20 6f 75 74 20 6f  st[S]+X is out o
1a00: 66 20 72 61 6e 67 65 20 6f 72 20 69 66 20 74 68  f range or if th
1a10: 65 20 76 61 6c 75 65 0a 2a 2a 20 79 79 5f 6c 6f  e value.** yy_lo
1a20: 6f 6b 61 68 65 61 64 5b 79 79 5f 73 68 69 66 74  okahead[yy_shift
1a30: 5f 6f 66 73 74 5b 53 5d 2b 58 5d 20 69 73 20 6e  _ofst[S]+X] is n
1a40: 6f 74 20 65 71 75 61 6c 20 74 6f 20 58 20 6f 72  ot equal to X or
1a50: 20 69 66 20 79 79 5f 73 68 69 66 74 5f 6f 66 73   if yy_shift_ofs
1a60: 74 5b 53 5d 0a 2a 2a 20 69 73 20 65 71 75 61 6c  t[S].** is equal
1a70: 20 74 6f 20 59 59 5f 53 48 49 46 54 5f 55 53 45   to YY_SHIFT_USE
1a80: 5f 44 46 4c 54 2c 20 69 74 20 6d 65 61 6e 73 20  _DFLT, it means 
1a90: 74 68 61 74 20 74 68 65 20 61 63 74 69 6f 6e 20  that the action 
1aa0: 69 73 20 6e 6f 74 20 69 6e 20 74 68 65 20 74 61  is not in the ta
1ab0: 62 6c 65 0a 2a 2a 20 61 6e 64 20 74 68 61 74 20  ble.** and that 
1ac0: 79 79 5f 64 65 66 61 75 6c 74 5b 53 5d 20 73 68  yy_default[S] sh
1ad0: 6f 75 6c 64 20 62 65 20 75 73 65 64 20 69 6e 73  ould be used ins
1ae0: 74 65 61 64 2e 20 20 0a 2a 2a 0a 2a 2a 20 54 68  tead.  .**.** Th
1af0: 65 20 66 6f 72 6d 75 6c 61 20 61 62 6f 76 65 20  e formula above 
1b00: 69 73 20 66 6f 72 20 63 6f 6d 70 75 74 69 6e 67  is for computing
1b10: 20 74 68 65 20 61 63 74 69 6f 6e 20 77 68 65 6e   the action when
1b20: 20 74 68 65 20 6c 6f 6f 6b 61 68 65 61 64 20 69   the lookahead i
1b30: 73 0a 2a 2a 20 61 20 74 65 72 6d 69 6e 61 6c 20  s.** a terminal 
1b40: 73 79 6d 62 6f 6c 2e 20 20 49 66 20 74 68 65 20  symbol.  If the 
1b50: 6c 6f 6f 6b 61 68 65 61 64 20 69 73 20 61 20 6e  lookahead is a n
1b60: 6f 6e 2d 74 65 72 6d 69 6e 61 6c 20 28 61 73 20  on-terminal (as 
1b70: 6f 63 63 75 72 73 20 61 66 74 65 72 0a 2a 2a 20  occurs after.** 
1b80: 61 20 72 65 64 75 63 65 20 61 63 74 69 6f 6e 29  a reduce action)
1b90: 20 74 68 65 6e 20 74 68 65 20 79 79 5f 72 65 64   then the yy_red
1ba0: 75 63 65 5f 6f 66 73 74 5b 5d 20 61 72 72 61 79  uce_ofst[] array
1bb0: 20 69 73 20 75 73 65 64 20 69 6e 20 70 6c 61 63   is used in plac
1bc0: 65 20 6f 66 0a 2a 2a 20 74 68 65 20 79 79 5f 73  e of.** the yy_s
1bd0: 68 69 66 74 5f 6f 66 73 74 5b 5d 20 61 72 72 61  hift_ofst[] arra
1be0: 79 20 61 6e 64 20 59 59 5f 52 45 44 55 43 45 5f  y and YY_REDUCE_
1bf0: 55 53 45 5f 44 46 4c 54 20 69 73 20 75 73 65 64  USE_DFLT is used
1c00: 20 69 6e 20 70 6c 61 63 65 20 6f 66 0a 2a 2a 20   in place of.** 
1c10: 59 59 5f 53 48 49 46 54 5f 55 53 45 5f 44 46 4c  YY_SHIFT_USE_DFL
1c20: 54 2e 0a 2a 2a 0a 2a 2a 20 54 68 65 20 66 6f 6c  T..**.** The fol
1c30: 6c 6f 77 69 6e 67 20 61 72 65 20 74 68 65 20 74  lowing are the t
1c40: 61 62 6c 65 73 20 67 65 6e 65 72 61 74 65 64 20  ables generated 
1c50: 69 6e 20 74 68 69 73 20 73 65 63 74 69 6f 6e 3a  in this section:
1c60: 0a 2a 2a 0a 2a 2a 20 20 79 79 5f 61 63 74 69 6f  .**.**  yy_actio
1c70: 6e 5b 5d 20 20 20 20 20 20 20 20 41 20 73 69 6e  n[]        A sin
1c80: 67 6c 65 20 74 61 62 6c 65 20 63 6f 6e 74 61 69  gle table contai
1c90: 6e 69 6e 67 20 61 6c 6c 20 61 63 74 69 6f 6e 73  ning all actions
1ca0: 2e 0a 2a 2a 20 20 79 79 5f 6c 6f 6f 6b 61 68 65  ..**  yy_lookahe
1cb0: 61 64 5b 5d 20 20 20 20 20 41 20 74 61 62 6c 65  ad[]     A table
1cc0: 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20   containing the 
1cd0: 6c 6f 6f 6b 61 68 65 61 64 20 66 6f 72 20 65 61  lookahead for ea
1ce0: 63 68 20 65 6e 74 72 79 20 69 6e 0a 2a 2a 20 20  ch entry in.**  
1cf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d00: 20 20 20 79 79 5f 61 63 74 69 6f 6e 2e 20 20 55     yy_action.  U
1d10: 73 65 64 20 74 6f 20 64 65 74 65 63 74 20 68 61  sed to detect ha
1d20: 73 68 20 63 6f 6c 6c 69 73 69 6f 6e 73 2e 0a 2a  sh collisions..*
1d30: 2a 20 20 79 79 5f 73 68 69 66 74 5f 6f 66 73 74  *  yy_shift_ofst
1d40: 5b 5d 20 20 20 20 46 6f 72 20 65 61 63 68 20 73  []    For each s
1d50: 74 61 74 65 2c 20 74 68 65 20 6f 66 66 73 65 74  tate, the offset
1d60: 20 69 6e 74 6f 20 79 79 5f 61 63 74 69 6f 6e 20   into yy_action 
1d70: 66 6f 72 0a 2a 2a 20 20 20 20 20 20 20 20 20 20  for.**          
1d80: 20 20 20 20 20 20 20 20 20 20 20 73 68 69 66 74             shift
1d90: 69 6e 67 20 74 65 72 6d 69 6e 61 6c 73 2e 0a 2a  ing terminals..*
1da0: 2a 20 20 79 79 5f 72 65 64 75 63 65 5f 6f 66 73  *  yy_reduce_ofs
1db0: 74 5b 5d 20 20 20 46 6f 72 20 65 61 63 68 20 73  t[]   For each s
1dc0: 74 61 74 65 2c 20 74 68 65 20 6f 66 66 73 65 74  tate, the offset
1dd0: 20 69 6e 74 6f 20 79 79 5f 61 63 74 69 6f 6e 20   into yy_action 
1de0: 66 6f 72 0a 2a 2a 20 20 20 20 20 20 20 20 20 20  for.**          
1df0: 20 20 20 20 20 20 20 20 20 20 20 73 68 69 66 74             shift
1e00: 69 6e 67 20 6e 6f 6e 2d 74 65 72 6d 69 6e 61 6c  ing non-terminal
1e10: 73 20 61 66 74 65 72 20 61 20 72 65 64 75 63 65  s after a reduce
1e20: 2e 0a 2a 2a 20 20 79 79 5f 64 65 66 61 75 6c 74  ..**  yy_default
1e30: 5b 5d 20 20 20 20 20 20 20 44 65 66 61 75 6c 74  []       Default
1e40: 20 61 63 74 69 6f 6e 20 66 6f 72 20 65 61 63 68   action for each
1e50: 20 73 74 61 74 65 2e 0a 2a 2a 0a 2a 2a 2a 2a 2a   state..**.*****
1e60: 2a 2a 2a 2a 2a 2a 20 42 65 67 69 6e 20 70 61 72  ****** Begin par
1e70: 73 69 6e 67 20 74 61 62 6c 65 73 20 2a 2a 2a 2a  sing tables ****
1e80: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
1e90: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
1ea0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 25 25 0a 2f  **********/.%%./
1eb0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 45 6e 64 20 6f  ********** End o
1ec0: 66 20 6c 65 6d 6f 6e 2d 67 65 6e 65 72 61 74 65  f lemon-generate
1ed0: 64 20 70 61 72 73 69 6e 67 20 74 61 62 6c 65 73  d parsing tables
1ee0: 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ***************
1ef0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a  **************/.
1f00: 0a 2f 2a 20 54 68 65 20 6e 65 78 74 20 74 61 62  ./* The next tab
1f10: 6c 65 20 6d 61 70 73 20 74 6f 6b 65 6e 73 20 28  le maps tokens (
1f20: 74 65 72 6d 69 6e 61 6c 20 73 79 6d 62 6f 6c 73  terminal symbols
1f30: 29 20 69 6e 74 6f 20 66 61 6c 6c 62 61 63 6b 20  ) into fallback 
1f40: 74 6f 6b 65 6e 73 2e 20 20 0a 2a 2a 20 49 66 20  tokens.  .** If 
1f50: 61 20 63 6f 6e 73 74 72 75 63 74 20 6c 69 6b 65  a construct like
1f60: 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a   the following:.
1f70: 2a 2a 20 0a 2a 2a 20 20 20 20 20 20 25 66 61 6c  ** .**      %fal
1f80: 6c 62 61 63 6b 20 49 44 20 58 20 59 20 5a 2e 0a  lback ID X Y Z..
1f90: 2a 2a 0a 2a 2a 20 61 70 70 65 61 72 73 20 69 6e  **.** appears in
1fa0: 20 74 68 65 20 67 72 61 6d 6d 61 72 2c 20 74 68   the grammar, th
1fb0: 65 6e 20 49 44 20 62 65 63 6f 6d 65 73 20 61 20  en ID becomes a 
1fc0: 66 61 6c 6c 62 61 63 6b 20 74 6f 6b 65 6e 20 66  fallback token f
1fd0: 6f 72 20 58 2c 20 59 2c 0a 2a 2a 20 61 6e 64 20  or X, Y,.** and 
1fe0: 5a 2e 20 20 57 68 65 6e 65 76 65 72 20 6f 6e 65  Z.  Whenever one
1ff0: 20 6f 66 20 74 68 65 20 74 6f 6b 65 6e 73 20 58   of the tokens X
2000: 2c 20 59 2c 20 6f 72 20 5a 20 69 73 20 69 6e 70  , Y, or Z is inp
2010: 75 74 20 74 6f 20 74 68 65 20 70 61 72 73 65 72  ut to the parser
2020: 0a 2a 2a 20 62 75 74 20 69 74 20 64 6f 65 73 20  .** but it does 
2030: 6e 6f 74 20 70 61 72 73 65 2c 20 74 68 65 20 74  not parse, the t
2040: 79 70 65 20 6f 66 20 74 68 65 20 74 6f 6b 65 6e  ype of the token
2050: 20 69 73 20 63 68 61 6e 67 65 64 20 74 6f 20 49   is changed to I
2060: 44 20 61 6e 64 0a 2a 2a 20 74 68 65 20 70 61 72  D and.** the par
2070: 73 65 20 69 73 20 72 65 74 72 69 65 64 20 62 65  se is retried be
2080: 66 6f 72 65 20 61 6e 20 65 72 72 6f 72 20 69 73  fore an error is
2090: 20 74 68 72 6f 77 6e 2e 0a 2a 2a 0a 2a 2a 20 54   thrown..**.** T
20a0: 68 69 73 20 66 65 61 74 75 72 65 20 63 61 6e 20  his feature can 
20b0: 62 65 20 75 73 65 64 2c 20 66 6f 72 20 65 78 61  be used, for exa
20c0: 6d 70 6c 65 2c 20 74 6f 20 63 61 75 73 65 20 73  mple, to cause s
20d0: 6f 6d 65 20 6b 65 79 77 6f 72 64 73 20 69 6e 20  ome keywords in 
20e0: 61 20 6c 61 6e 67 75 61 67 65 0a 2a 2a 20 74 6f  a language.** to
20f0: 20 72 65 76 65 72 74 20 74 6f 20 69 64 65 6e 74   revert to ident
2100: 69 66 69 65 72 73 20 69 66 20 74 68 65 79 20 6b  ifiers if they k
2110: 65 79 77 6f 72 64 20 64 6f 65 73 20 6e 6f 74 20  eyword does not 
2120: 61 70 70 6c 79 20 69 6e 20 74 68 65 20 63 6f 6e  apply in the con
2130: 74 65 78 74 20 77 68 65 72 65 0a 2a 2a 20 69 74  text where.** it
2140: 20 61 70 70 65 61 72 73 2e 0a 2a 2f 0a 23 69 66   appears..*/.#if
2150: 64 65 66 20 59 59 46 41 4c 4c 42 41 43 4b 0a 73  def YYFALLBACK.s
2160: 74 61 74 69 63 20 63 6f 6e 73 74 20 59 59 43 4f  tatic const YYCO
2170: 44 45 54 59 50 45 20 79 79 46 61 6c 6c 62 61 63  DETYPE yyFallbac
2180: 6b 5b 5d 20 3d 20 7b 0a 25 25 0a 7d 3b 0a 23 65  k[] = {.%%.};.#e
2190: 6e 64 69 66 20 2f 2a 20 59 59 46 41 4c 4c 42 41  ndif /* YYFALLBA
21a0: 43 4b 20 2a 2f 0a 0a 2f 2a 20 54 68 65 20 66 6f  CK */../* The fo
21b0: 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 72  llowing structur
21c0: 65 20 72 65 70 72 65 73 65 6e 74 73 20 61 20 73  e represents a s
21d0: 69 6e 67 6c 65 20 65 6c 65 6d 65 6e 74 20 6f 66  ingle element of
21e0: 20 74 68 65 0a 2a 2a 20 70 61 72 73 65 72 27 73   the.** parser's
21f0: 20 73 74 61 63 6b 2e 20 20 49 6e 66 6f 72 6d 61   stack.  Informa
2200: 74 69 6f 6e 20 73 74 6f 72 65 64 20 69 6e 63 6c  tion stored incl
2210: 75 64 65 73 3a 0a 2a 2a 0a 2a 2a 20 20 20 2b 20  udes:.**.**   + 
2220: 20 54 68 65 20 73 74 61 74 65 20 6e 75 6d 62 65   The state numbe
2230: 72 20 66 6f 72 20 74 68 65 20 70 61 72 73 65 72  r for the parser
2240: 20 61 74 20 74 68 69 73 20 6c 65 76 65 6c 20 6f   at this level o
2250: 66 20 74 68 65 20 73 74 61 63 6b 2e 0a 2a 2a 0a  f the stack..**.
2260: 2a 2a 20 20 20 2b 20 20 54 68 65 20 76 61 6c 75  **   +  The valu
2270: 65 20 6f 66 20 74 68 65 20 74 6f 6b 65 6e 20 73  e of the token s
2280: 74 6f 72 65 64 20 61 74 20 74 68 69 73 20 6c 65  tored at this le
2290: 76 65 6c 20 6f 66 20 74 68 65 20 73 74 61 63 6b  vel of the stack
22a0: 2e 0a 2a 2a 20 20 20 20 20 20 28 49 6e 20 6f 74  ..**      (In ot
22b0: 68 65 72 20 77 6f 72 64 73 2c 20 74 68 65 20 22  her words, the "
22c0: 6d 61 6a 6f 72 22 20 74 6f 6b 65 6e 2e 29 0a 2a  major" token.).*
22d0: 2a 0a 2a 2a 20 20 20 2b 20 20 54 68 65 20 73 65  *.**   +  The se
22e0: 6d 61 6e 74 69 63 20 76 61 6c 75 65 20 73 74 6f  mantic value sto
22f0: 72 65 64 20 61 74 20 74 68 69 73 20 6c 65 76 65  red at this leve
2300: 6c 20 6f 66 20 74 68 65 20 73 74 61 63 6b 2e 20  l of the stack. 
2310: 20 54 68 69 73 20 69 73 0a 2a 2a 20 20 20 20 20   This is.**     
2320: 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e   the information
2330: 20 75 73 65 64 20 62 79 20 74 68 65 20 61 63 74   used by the act
2340: 69 6f 6e 20 72 6f 75 74 69 6e 65 73 20 69 6e 20  ion routines in 
2350: 74 68 65 20 67 72 61 6d 6d 61 72 2e 0a 2a 2a 20  the grammar..** 
2360: 20 20 20 20 20 49 74 20 69 73 20 73 6f 6d 65 74       It is somet
2370: 69 6d 65 73 20 63 61 6c 6c 65 64 20 74 68 65 20  imes called the 
2380: 22 6d 69 6e 6f 72 22 20 74 6f 6b 65 6e 2e 0a 2a  "minor" token..*
2390: 2a 0a 2a 2a 20 41 66 74 65 72 20 74 68 65 20 22  *.** After the "
23a0: 73 68 69 66 74 22 20 68 61 6c 66 20 6f 66 20 61  shift" half of a
23b0: 20 53 48 49 46 54 52 45 44 55 43 45 20 61 63 74   SHIFTREDUCE act
23c0: 69 6f 6e 2c 20 74 68 65 20 73 74 61 74 65 6e 6f  ion, the stateno
23d0: 20 66 69 65 6c 64 0a 2a 2a 20 61 63 74 75 61 6c   field.** actual
23e0: 6c 79 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20  ly contains the 
23f0: 72 65 64 75 63 65 20 61 63 74 69 6f 6e 20 66 6f  reduce action fo
2400: 72 20 74 68 65 20 73 65 63 6f 6e 64 20 68 61 6c  r the second hal
2410: 66 20 6f 66 20 74 68 65 0a 2a 2a 20 53 48 49 46  f of the.** SHIF
2420: 54 52 45 44 55 43 45 2e 0a 2a 2f 0a 73 74 72 75  TREDUCE..*/.stru
2430: 63 74 20 79 79 53 74 61 63 6b 45 6e 74 72 79 20  ct yyStackEntry 
2440: 7b 0a 20 20 59 59 41 43 54 49 4f 4e 54 59 50 45  {.  YYACTIONTYPE
2450: 20 73 74 61 74 65 6e 6f 3b 20 20 2f 2a 20 54 68   stateno;  /* Th
2460: 65 20 73 74 61 74 65 2d 6e 75 6d 62 65 72 2c 20  e state-number, 
2470: 6f 72 20 72 65 64 75 63 65 20 61 63 74 69 6f 6e  or reduce action
2480: 20 69 6e 20 53 48 49 46 54 52 45 44 55 43 45 20   in SHIFTREDUCE 
2490: 2a 2f 0a 20 20 59 59 43 4f 44 45 54 59 50 45 20  */.  YYCODETYPE 
24a0: 6d 61 6a 6f 72 3b 20 20 20 20 20 20 2f 2a 20 54  major;      /* T
24b0: 68 65 20 6d 61 6a 6f 72 20 74 6f 6b 65 6e 20 76  he major token v
24c0: 61 6c 75 65 2e 20 20 54 68 69 73 20 69 73 20 74  alue.  This is t
24d0: 68 65 20 63 6f 64 65 0a 20 20 20 20 20 20 20 20  he code.        
24e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
24f0: 20 2a 2a 20 6e 75 6d 62 65 72 20 66 6f 72 20 74   ** number for t
2500: 68 65 20 74 6f 6b 65 6e 20 61 74 20 74 68 69 73  he token at this
2510: 20 73 74 61 63 6b 20 6c 65 76 65 6c 20 2a 2f 0a   stack level */.
2520: 20 20 59 59 4d 49 4e 4f 52 54 59 50 45 20 6d 69    YYMINORTYPE mi
2530: 6e 6f 72 3b 20 20 20 20 20 2f 2a 20 54 68 65 20  nor;     /* The 
2540: 75 73 65 72 2d 73 75 70 70 6c 69 65 64 20 6d 69  user-supplied mi
2550: 6e 6f 72 20 74 6f 6b 65 6e 20 76 61 6c 75 65 2e  nor token value.
2560: 20 20 54 68 69 73 0a 20 20 20 20 20 20 20 20 20    This.         
2570: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2580: 2a 2a 20 69 73 20 74 68 65 20 76 61 6c 75 65 20  ** is the value 
2590: 6f 66 20 74 68 65 20 74 6f 6b 65 6e 20 20 2a 2f  of the token  */
25a0: 0a 7d 3b 0a 74 79 70 65 64 65 66 20 73 74 72 75  .};.typedef stru
25b0: 63 74 20 79 79 53 74 61 63 6b 45 6e 74 72 79 20  ct yyStackEntry 
25c0: 79 79 53 74 61 63 6b 45 6e 74 72 79 3b 0a 0a 2f  yyStackEntry;../
25d0: 2a 20 54 68 65 20 73 74 61 74 65 20 6f 66 20 74  * The state of t
25e0: 68 65 20 70 61 72 73 65 72 20 69 73 20 63 6f 6d  he parser is com
25f0: 70 6c 65 74 65 6c 79 20 63 6f 6e 74 61 69 6e 65  pletely containe
2600: 64 20 69 6e 20 61 6e 20 69 6e 73 74 61 6e 63 65  d in an instance
2610: 20 6f 66 0a 2a 2a 20 74 68 65 20 66 6f 6c 6c 6f   of.** the follo
2620: 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 20 2a  wing structure *
2630: 2f 0a 73 74 72 75 63 74 20 79 79 50 61 72 73 65  /.struct yyParse
2640: 72 20 7b 0a 20 20 69 6e 74 20 79 79 69 64 78 3b  r {.  int yyidx;
2650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2660: 20 20 20 20 2f 2a 20 49 6e 64 65 78 20 6f 66 20      /* Index of 
2670: 74 6f 70 20 65 6c 65 6d 65 6e 74 20 69 6e 20 73  top element in s
2680: 74 61 63 6b 20 2a 2f 0a 23 69 66 64 65 66 20 59  tack */.#ifdef Y
2690: 59 54 52 41 43 4b 4d 41 58 53 54 41 43 4b 44 45  YTRACKMAXSTACKDE
26a0: 50 54 48 0a 20 20 69 6e 74 20 79 79 69 64 78 4d  PTH.  int yyidxM
26b0: 61 78 3b 20 20 20 20 20 20 20 20 20 20 20 20 20  ax;             
26c0: 20 20 20 20 2f 2a 20 4d 61 78 69 6d 75 6d 20 76      /* Maximum v
26d0: 61 6c 75 65 20 6f 66 20 79 79 69 64 78 20 2a 2f  alue of yyidx */
26e0: 0a 23 65 6e 64 69 66 0a 23 69 66 6e 64 65 66 20  .#endif.#ifndef 
26f0: 59 59 4e 4f 45 52 52 4f 52 52 45 43 4f 56 45 52  YYNOERRORRECOVER
2700: 59 0a 20 20 69 6e 74 20 79 79 65 72 72 63 6e 74  Y.  int yyerrcnt
2710: 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;               
2720: 20 20 2f 2a 20 53 68 69 66 74 73 20 6c 65 66 74    /* Shifts left
2730: 20 62 65 66 6f 72 65 20 6f 75 74 20 6f 66 20 74   before out of t
2740: 68 65 20 65 72 72 6f 72 20 2a 2f 0a 23 65 6e 64  he error */.#end
2750: 69 66 0a 20 20 50 61 72 73 65 41 52 47 5f 53 44  if.  ParseARG_SD
2760: 45 43 4c 20 20 20 20 20 20 20 20 20 20 20 20 20  ECL             
2770: 20 20 20 2f 2a 20 41 20 70 6c 61 63 65 20 74 6f     /* A place to
2780: 20 68 6f 6c 64 20 25 65 78 74 72 61 5f 61 72 67   hold %extra_arg
2790: 75 6d 65 6e 74 20 2a 2f 0a 23 69 66 20 59 59 53  ument */.#if YYS
27a0: 54 41 43 4b 44 45 50 54 48 3c 3d 30 0a 20 20 69  TACKDEPTH<=0.  i
27b0: 6e 74 20 79 79 73 74 6b 73 7a 3b 20 20 20 20 20  nt yystksz;     
27c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20               /* 
27d0: 43 75 72 72 65 6e 74 20 73 69 64 65 20 6f 66 20  Current side of 
27e0: 74 68 65 20 73 74 61 63 6b 20 2a 2f 0a 20 20 79  the stack */.  y
27f0: 79 53 74 61 63 6b 45 6e 74 72 79 20 2a 79 79 73  yStackEntry *yys
2800: 74 61 63 6b 3b 20 20 20 20 20 20 20 20 2f 2a 20  tack;        /* 
2810: 54 68 65 20 70 61 72 73 65 72 27 73 20 73 74 61  The parser's sta
2820: 63 6b 20 2a 2f 0a 23 65 6c 73 65 0a 20 20 79 79  ck */.#else.  yy
2830: 53 74 61 63 6b 45 6e 74 72 79 20 79 79 73 74 61  StackEntry yysta
2840: 63 6b 5b 59 59 53 54 41 43 4b 44 45 50 54 48 5d  ck[YYSTACKDEPTH]
2850: 3b 20 20 2f 2a 20 54 68 65 20 70 61 72 73 65 72  ;  /* The parser
2860: 27 73 20 73 74 61 63 6b 20 2a 2f 0a 23 65 6e 64  's stack */.#end
2870: 69 66 0a 7d 3b 0a 74 79 70 65 64 65 66 20 73 74  if.};.typedef st
2880: 72 75 63 74 20 79 79 50 61 72 73 65 72 20 79 79  ruct yyParser yy
2890: 50 61 72 73 65 72 3b 0a 0a 23 69 66 6e 64 65 66  Parser;..#ifndef
28a0: 20 4e 44 45 42 55 47 0a 23 69 6e 63 6c 75 64 65   NDEBUG.#include
28b0: 20 3c 73 74 64 69 6f 2e 68 3e 0a 73 74 61 74 69   <stdio.h>.stati
28c0: 63 20 46 49 4c 45 20 2a 79 79 54 72 61 63 65 46  c FILE *yyTraceF
28d0: 49 4c 45 20 3d 20 30 3b 0a 73 74 61 74 69 63 20  ILE = 0;.static 
28e0: 63 68 61 72 20 2a 79 79 54 72 61 63 65 50 72 6f  char *yyTracePro
28f0: 6d 70 74 20 3d 20 30 3b 0a 23 65 6e 64 69 66 20  mpt = 0;.#endif 
2900: 2f 2a 20 4e 44 45 42 55 47 20 2a 2f 0a 0a 23 69  /* NDEBUG */..#i
2910: 66 6e 64 65 66 20 4e 44 45 42 55 47 0a 2f 2a 20  fndef NDEBUG./* 
2920: 0a 2a 2a 20 54 75 72 6e 20 70 61 72 73 65 72 20  .** Turn parser 
2930: 74 72 61 63 69 6e 67 20 6f 6e 20 62 79 20 67 69  tracing on by gi
2940: 76 69 6e 67 20 61 20 73 74 72 65 61 6d 20 74 6f  ving a stream to
2950: 20 77 68 69 63 68 20 74 6f 20 77 72 69 74 65 20   which to write 
2960: 74 68 65 20 74 72 61 63 65 0a 2a 2a 20 61 6e 64  the trace.** and
2970: 20 61 20 70 72 6f 6d 70 74 20 74 6f 20 70 72 65   a prompt to pre
2980: 66 61 63 65 20 65 61 63 68 20 74 72 61 63 65 20  face each trace 
2990: 6d 65 73 73 61 67 65 2e 20 20 54 72 61 63 69 6e  message.  Tracin
29a0: 67 20 69 73 20 74 75 72 6e 65 64 20 6f 66 66 0a  g is turned off.
29b0: 2a 2a 20 62 79 20 6d 61 6b 69 6e 67 20 65 69 74  ** by making eit
29c0: 68 65 72 20 61 72 67 75 6d 65 6e 74 20 4e 55 4c  her argument NUL
29d0: 4c 20 0a 2a 2a 0a 2a 2a 20 49 6e 70 75 74 73 3a  L .**.** Inputs:
29e0: 0a 2a 2a 20 3c 75 6c 3e 0a 2a 2a 20 3c 6c 69 3e  .** <ul>.** <li>
29f0: 20 41 20 46 49 4c 45 2a 20 74 6f 20 77 68 69 63   A FILE* to whic
2a00: 68 20 74 72 61 63 65 20 6f 75 74 70 75 74 20 73  h trace output s
2a10: 68 6f 75 6c 64 20 62 65 20 77 72 69 74 74 65 6e  hould be written
2a20: 2e 0a 2a 2a 20 20 20 20 20 20 49 66 20 4e 55 4c  ..**      If NUL
2a30: 4c 2c 20 74 68 65 6e 20 74 72 61 63 69 6e 67 20  L, then tracing 
2a40: 69 73 20 74 75 72 6e 65 64 20 6f 66 66 2e 0a 2a  is turned off..*
2a50: 2a 20 3c 6c 69 3e 20 41 20 70 72 65 66 69 78 20  * <li> A prefix 
2a60: 73 74 72 69 6e 67 20 77 72 69 74 74 65 6e 20 61  string written a
2a70: 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20  t the beginning 
2a80: 6f 66 20 65 76 65 72 79 0a 2a 2a 20 20 20 20 20  of every.**     
2a90: 20 6c 69 6e 65 20 6f 66 20 74 72 61 63 65 20 6f   line of trace o
2aa0: 75 74 70 75 74 2e 20 20 49 66 20 4e 55 4c 4c 2c  utput.  If NULL,
2ab0: 20 74 68 65 6e 20 74 72 61 63 69 6e 67 20 69 73   then tracing is
2ac0: 0a 2a 2a 20 20 20 20 20 20 74 75 72 6e 65 64 20  .**      turned 
2ad0: 6f 66 66 2e 0a 2a 2a 20 3c 2f 75 6c 3e 0a 2a 2a  off..** </ul>.**
2ae0: 0a 2a 2a 20 4f 75 74 70 75 74 73 3a 0a 2a 2a 20  .** Outputs:.** 
2af0: 4e 6f 6e 65 2e 0a 2a 2f 0a 76 6f 69 64 20 50 61  None..*/.void Pa
2b00: 72 73 65 54 72 61 63 65 28 46 49 4c 45 20 2a 54  rseTrace(FILE *T
2b10: 72 61 63 65 46 49 4c 45 2c 20 63 68 61 72 20 2a  raceFILE, char *
2b20: 7a 54 72 61 63 65 50 72 6f 6d 70 74 29 7b 0a 20  zTracePrompt){. 
2b30: 20 79 79 54 72 61 63 65 46 49 4c 45 20 3d 20 54   yyTraceFILE = T
2b40: 72 61 63 65 46 49 4c 45 3b 0a 20 20 79 79 54 72  raceFILE;.  yyTr
2b50: 61 63 65 50 72 6f 6d 70 74 20 3d 20 7a 54 72 61  acePrompt = zTra
2b60: 63 65 50 72 6f 6d 70 74 3b 0a 20 20 69 66 28 20  cePrompt;.  if( 
2b70: 79 79 54 72 61 63 65 46 49 4c 45 3d 3d 30 20 29  yyTraceFILE==0 )
2b80: 20 79 79 54 72 61 63 65 50 72 6f 6d 70 74 20 3d   yyTracePrompt =
2b90: 20 30 3b 0a 20 20 65 6c 73 65 20 69 66 28 20 79   0;.  else if( y
2ba0: 79 54 72 61 63 65 50 72 6f 6d 70 74 3d 3d 30 20  yTracePrompt==0 
2bb0: 29 20 79 79 54 72 61 63 65 46 49 4c 45 20 3d 20  ) yyTraceFILE = 
2bc0: 30 3b 0a 7d 0a 23 65 6e 64 69 66 20 2f 2a 20 4e  0;.}.#endif /* N
2bd0: 44 45 42 55 47 20 2a 2f 0a 0a 23 69 66 6e 64 65  DEBUG */..#ifnde
2be0: 66 20 4e 44 45 42 55 47 0a 2f 2a 20 46 6f 72 20  f NDEBUG./* For 
2bf0: 74 72 61 63 69 6e 67 20 73 68 69 66 74 73 2c 20  tracing shifts, 
2c00: 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 61 6c 6c  the names of all
2c10: 20 74 65 72 6d 69 6e 61 6c 73 20 61 6e 64 20 6e   terminals and n
2c20: 6f 6e 74 65 72 6d 69 6e 61 6c 73 0a 2a 2a 20 61  onterminals.** a
2c30: 72 65 20 72 65 71 75 69 72 65 64 2e 20 20 54 68  re required.  Th
2c40: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 62 6c  e following tabl
2c50: 65 20 73 75 70 70 6c 69 65 73 20 74 68 65 73 65  e supplies these
2c60: 20 6e 61 6d 65 73 20 2a 2f 0a 73 74 61 74 69 63   names */.static
2c70: 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 63 6f 6e   const char *con
2c80: 73 74 20 79 79 54 6f 6b 65 6e 4e 61 6d 65 5b 5d  st yyTokenName[]
2c90: 20 3d 20 7b 20 0a 25 25 0a 7d 3b 0a 23 65 6e 64   = { .%%.};.#end
2ca0: 69 66 20 2f 2a 20 4e 44 45 42 55 47 20 2a 2f 0a  if /* NDEBUG */.
2cb0: 0a 23 69 66 6e 64 65 66 20 4e 44 45 42 55 47 0a  .#ifndef NDEBUG.
2cc0: 2f 2a 20 46 6f 72 20 74 72 61 63 69 6e 67 20 72  /* For tracing r
2cd0: 65 64 75 63 65 20 61 63 74 69 6f 6e 73 2c 20 74  educe actions, t
2ce0: 68 65 20 6e 61 6d 65 73 20 6f 66 20 61 6c 6c 20  he names of all 
2cf0: 72 75 6c 65 73 20 61 72 65 20 72 65 71 75 69 72  rules are requir
2d00: 65 64 2e 0a 2a 2f 0a 73 74 61 74 69 63 20 63 6f  ed..*/.static co
2d10: 6e 73 74 20 63 68 61 72 20 2a 63 6f 6e 73 74 20  nst char *const 
2d20: 79 79 52 75 6c 65 4e 61 6d 65 5b 5d 20 3d 20 7b  yyRuleName[] = {
2d30: 0a 25 25 0a 7d 3b 0a 23 65 6e 64 69 66 20 2f 2a  .%%.};.#endif /*
2d40: 20 4e 44 45 42 55 47 20 2a 2f 0a 0a 0a 23 69 66   NDEBUG */...#if
2d50: 20 59 59 53 54 41 43 4b 44 45 50 54 48 3c 3d 30   YYSTACKDEPTH<=0
2d60: 0a 2f 2a 0a 2a 2a 20 54 72 79 20 74 6f 20 69 6e  ./*.** Try to in
2d70: 63 72 65 61 73 65 20 74 68 65 20 73 69 7a 65 20  crease the size 
2d80: 6f 66 20 74 68 65 20 70 61 72 73 65 72 20 73 74  of the parser st
2d90: 61 63 6b 2e 0a 2a 2f 0a 73 74 61 74 69 63 20 76  ack..*/.static v
2da0: 6f 69 64 20 79 79 47 72 6f 77 53 74 61 63 6b 28  oid yyGrowStack(
2db0: 79 79 50 61 72 73 65 72 20 2a 70 29 7b 0a 20 20  yyParser *p){.  
2dc0: 69 6e 74 20 6e 65 77 53 69 7a 65 3b 0a 20 20 79  int newSize;.  y
2dd0: 79 53 74 61 63 6b 45 6e 74 72 79 20 2a 70 4e 65  yStackEntry *pNe
2de0: 77 3b 0a 0a 20 20 6e 65 77 53 69 7a 65 20 3d 20  w;..  newSize = 
2df0: 70 2d 3e 79 79 73 74 6b 73 7a 2a 32 20 2b 20 31  p->yystksz*2 + 1
2e00: 30 30 3b 0a 20 20 70 4e 65 77 20 3d 20 72 65 61  00;.  pNew = rea
2e10: 6c 6c 6f 63 28 70 2d 3e 79 79 73 74 61 63 6b 2c  lloc(p->yystack,
2e20: 20 6e 65 77 53 69 7a 65 2a 73 69 7a 65 6f 66 28   newSize*sizeof(
2e30: 70 4e 65 77 5b 30 5d 29 29 3b 0a 20 20 69 66 28  pNew[0]));.  if(
2e40: 20 70 4e 65 77 20 29 7b 0a 20 20 20 20 70 2d 3e   pNew ){.    p->
2e50: 79 79 73 74 61 63 6b 20 3d 20 70 4e 65 77 3b 0a  yystack = pNew;.
2e60: 20 20 20 20 70 2d 3e 79 79 73 74 6b 73 7a 20 3d      p->yystksz =
2e70: 20 6e 65 77 53 69 7a 65 3b 0a 23 69 66 6e 64 65   newSize;.#ifnde
2e80: 66 20 4e 44 45 42 55 47 0a 20 20 20 20 69 66 28  f NDEBUG.    if(
2e90: 20 79 79 54 72 61 63 65 46 49 4c 45 20 29 7b 0a   yyTraceFILE ){.
2ea0: 20 20 20 20 20 20 66 70 72 69 6e 74 66 28 79 79        fprintf(yy
2eb0: 54 72 61 63 65 46 49 4c 45 2c 22 25 73 53 74 61  TraceFILE,"%sSta
2ec0: 63 6b 20 67 72 6f 77 73 20 74 6f 20 25 64 20 65  ck grows to %d e
2ed0: 6e 74 72 69 65 73 21 5c 6e 22 2c 0a 20 20 20 20  ntries!\n",.    
2ee0: 20 20 20 20 20 20 20 20 20 20 79 79 54 72 61 63            yyTrac
2ef0: 65 50 72 6f 6d 70 74 2c 20 70 2d 3e 79 79 73 74  ePrompt, p->yyst
2f00: 6b 73 7a 29 3b 0a 20 20 20 20 7d 0a 23 65 6e 64  ksz);.    }.#end
2f10: 69 66 0a 20 20 7d 0a 7d 0a 23 65 6e 64 69 66 0a  if.  }.}.#endif.
2f20: 0a 2f 2a 20 44 61 74 61 74 79 70 65 20 6f 66 20  ./* Datatype of 
2f30: 74 68 65 20 61 72 67 75 6d 65 6e 74 20 74 6f 20  the argument to 
2f40: 74 68 65 20 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63  the memory alloc
2f50: 61 74 65 64 20 70 61 73 73 65 64 20 61 73 20 74  ated passed as t
2f60: 68 65 0a 2a 2a 20 73 65 63 6f 6e 64 20 61 72 67  he.** second arg
2f70: 75 6d 65 6e 74 20 74 6f 20 50 61 72 73 65 41 6c  ument to ParseAl
2f80: 6c 6f 63 28 29 20 62 65 6c 6f 77 2e 20 20 54 68  loc() below.  Th
2f90: 69 73 20 63 61 6e 20 62 65 20 63 68 61 6e 67 65  is can be change
2fa0: 64 20 62 79 0a 2a 2a 20 70 75 74 74 69 6e 67 20  d by.** putting 
2fb0: 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 23  an appropriate #
2fc0: 64 65 66 69 6e 65 20 69 6e 20 74 68 65 20 25 69  define in the %i
2fd0: 6e 63 6c 75 64 65 20 73 65 63 74 69 6f 6e 20 6f  nclude section o
2fe0: 66 20 74 68 65 20 69 6e 70 75 74 0a 2a 2a 20 67  f the input.** g
2ff0: 72 61 6d 6d 61 72 2e 0a 2a 2f 0a 23 69 66 6e 64  rammar..*/.#ifnd
3000: 65 66 20 59 59 4d 41 4c 4c 4f 43 41 52 47 54 59  ef YYMALLOCARGTY
3010: 50 45 0a 23 20 64 65 66 69 6e 65 20 59 59 4d 41  PE.# define YYMA
3020: 4c 4c 4f 43 41 52 47 54 59 50 45 20 73 69 7a 65  LLOCARGTYPE size
3030: 5f 74 0a 23 65 6e 64 69 66 0a 0a 2f 2a 20 0a 2a  _t.#endif../* .*
3040: 2a 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20  * This function 
3050: 61 6c 6c 6f 63 61 74 65 73 20 61 20 6e 65 77 20  allocates a new 
3060: 70 61 72 73 65 72 2e 0a 2a 2a 20 54 68 65 20 6f  parser..** The o
3070: 6e 6c 79 20 61 72 67 75 6d 65 6e 74 20 69 73 20  nly argument is 
3080: 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 66  a pointer to a f
3090: 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 77 6f  unction which wo
30a0: 72 6b 73 20 6c 69 6b 65 0a 2a 2a 20 6d 61 6c 6c  rks like.** mall
30b0: 6f 63 2e 0a 2a 2a 0a 2a 2a 20 49 6e 70 75 74 73  oc..**.** Inputs
30c0: 3a 0a 2a 2a 20 41 20 70 6f 69 6e 74 65 72 20 74  :.** A pointer t
30d0: 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 75  o the function u
30e0: 73 65 64 20 74 6f 20 61 6c 6c 6f 63 61 74 65 20  sed to allocate 
30f0: 6d 65 6d 6f 72 79 2e 0a 2a 2a 0a 2a 2a 20 4f 75  memory..**.** Ou
3100: 74 70 75 74 73 3a 0a 2a 2a 20 41 20 70 6f 69 6e  tputs:.** A poin
3110: 74 65 72 20 74 6f 20 61 20 70 61 72 73 65 72 2e  ter to a parser.
3120: 20 20 54 68 69 73 20 70 6f 69 6e 74 65 72 20 69    This pointer i
3130: 73 20 75 73 65 64 20 69 6e 20 73 75 62 73 65 71  s used in subseq
3140: 75 65 6e 74 20 63 61 6c 6c 73 0a 2a 2a 20 74 6f  uent calls.** to
3150: 20 50 61 72 73 65 20 61 6e 64 20 50 61 72 73 65   Parse and Parse
3160: 46 72 65 65 2e 0a 2a 2f 0a 76 6f 69 64 20 2a 50  Free..*/.void *P
3170: 61 72 73 65 41 6c 6c 6f 63 28 76 6f 69 64 20 2a  arseAlloc(void *
3180: 28 2a 6d 61 6c 6c 6f 63 50 72 6f 63 29 28 59 59  (*mallocProc)(YY
3190: 4d 41 4c 4c 4f 43 41 52 47 54 59 50 45 29 29 7b  MALLOCARGTYPE)){
31a0: 0a 20 20 79 79 50 61 72 73 65 72 20 2a 70 50 61  .  yyParser *pPa
31b0: 72 73 65 72 3b 0a 20 20 70 50 61 72 73 65 72 20  rser;.  pParser 
31c0: 3d 20 28 79 79 50 61 72 73 65 72 2a 29 28 2a 6d  = (yyParser*)(*m
31d0: 61 6c 6c 6f 63 50 72 6f 63 29 28 20 28 59 59 4d  allocProc)( (YYM
31e0: 41 4c 4c 4f 43 41 52 47 54 59 50 45 29 73 69 7a  ALLOCARGTYPE)siz
31f0: 65 6f 66 28 79 79 50 61 72 73 65 72 29 20 29 3b  eof(yyParser) );
3200: 0a 20 20 69 66 28 20 70 50 61 72 73 65 72 20 29  .  if( pParser )
3210: 7b 0a 20 20 20 20 70 50 61 72 73 65 72 2d 3e 79  {.    pParser->y
3220: 79 69 64 78 20 3d 20 2d 31 3b 0a 23 69 66 64 65  yidx = -1;.#ifde
3230: 66 20 59 59 54 52 41 43 4b 4d 41 58 53 54 41 43  f YYTRACKMAXSTAC
3240: 4b 44 45 50 54 48 0a 20 20 20 20 70 50 61 72 73  KDEPTH.    pPars
3250: 65 72 2d 3e 79 79 69 64 78 4d 61 78 20 3d 20 30  er->yyidxMax = 0
3260: 3b 0a 23 65 6e 64 69 66 0a 23 69 66 20 59 59 53  ;.#endif.#if YYS
3270: 54 41 43 4b 44 45 50 54 48 3c 3d 30 0a 20 20 20  TACKDEPTH<=0.   
3280: 20 70 50 61 72 73 65 72 2d 3e 79 79 73 74 61 63   pParser->yystac
3290: 6b 20 3d 20 4e 55 4c 4c 3b 0a 20 20 20 20 70 50  k = NULL;.    pP
32a0: 61 72 73 65 72 2d 3e 79 79 73 74 6b 73 7a 20 3d  arser->yystksz =
32b0: 20 30 3b 0a 20 20 20 20 79 79 47 72 6f 77 53 74   0;.    yyGrowSt
32c0: 61 63 6b 28 70 50 61 72 73 65 72 29 3b 0a 23 65  ack(pParser);.#e
32d0: 6e 64 69 66 0a 20 20 7d 0a 20 20 72 65 74 75 72  ndif.  }.  retur
32e0: 6e 20 70 50 61 72 73 65 72 3b 0a 7d 0a 0a 2f 2a  n pParser;.}../*
32f0: 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66   The following f
3300: 75 6e 63 74 69 6f 6e 20 64 65 6c 65 74 65 73 20  unction deletes 
3310: 74 68 65 20 22 6d 69 6e 6f 72 20 74 79 70 65 22  the "minor type"
3320: 20 6f 72 20 73 65 6d 61 6e 74 69 63 20 76 61 6c   or semantic val
3330: 75 65 0a 2a 2a 20 61 73 73 6f 63 69 61 74 65 64  ue.** associated
3340: 20 77 69 74 68 20 61 20 73 79 6d 62 6f 6c 2e 20   with a symbol. 
3350: 20 54 68 65 20 73 79 6d 62 6f 6c 20 63 61 6e 20   The symbol can 
3360: 62 65 20 65 69 74 68 65 72 20 61 20 74 65 72 6d  be either a term
3370: 69 6e 61 6c 0a 2a 2a 20 6f 72 20 6e 6f 6e 74 65  inal.** or nonte
3380: 72 6d 69 6e 61 6c 2e 20 22 79 79 6d 61 6a 6f 72  rminal. "yymajor
3390: 22 20 69 73 20 74 68 65 20 73 79 6d 62 6f 6c 20  " is the symbol 
33a0: 63 6f 64 65 2c 20 61 6e 64 20 22 79 79 70 6d 69  code, and "yypmi
33b0: 6e 6f 72 22 20 69 73 0a 2a 2a 20 61 20 70 6f 69  nor" is.** a poi
33c0: 6e 74 65 72 20 74 6f 20 74 68 65 20 76 61 6c 75  nter to the valu
33d0: 65 20 74 6f 20 62 65 20 64 65 6c 65 74 65 64 2e  e to be deleted.
33e0: 20 20 54 68 65 20 63 6f 64 65 20 75 73 65 64 20    The code used 
33f0: 74 6f 20 64 6f 20 74 68 65 20 0a 2a 2a 20 64 65  to do the .** de
3400: 6c 65 74 69 6f 6e 73 20 69 73 20 64 65 72 69 76  letions is deriv
3410: 65 64 20 66 72 6f 6d 20 74 68 65 20 25 64 65 73  ed from the %des
3420: 74 72 75 63 74 6f 72 20 61 6e 64 2f 6f 72 20 25  tructor and/or %
3430: 74 6f 6b 65 6e 5f 64 65 73 74 72 75 63 74 6f 72  token_destructor
3440: 0a 2a 2a 20 64 69 72 65 63 74 69 76 65 73 20 6f  .** directives o
3450: 66 20 74 68 65 20 69 6e 70 75 74 20 67 72 61 6d  f the input gram
3460: 6d 61 72 2e 0a 2a 2f 0a 73 74 61 74 69 63 20 76  mar..*/.static v
3470: 6f 69 64 20 79 79 5f 64 65 73 74 72 75 63 74 6f  oid yy_destructo
3480: 72 28 0a 20 20 79 79 50 61 72 73 65 72 20 2a 79  r(.  yyParser *y
3490: 79 70 50 61 72 73 65 72 2c 20 20 20 20 2f 2a 20  ypParser,    /* 
34a0: 54 68 65 20 70 61 72 73 65 72 20 2a 2f 0a 20 20  The parser */.  
34b0: 59 59 43 4f 44 45 54 59 50 45 20 79 79 6d 61 6a  YYCODETYPE yymaj
34c0: 6f 72 2c 20 20 20 20 20 2f 2a 20 54 79 70 65 20  or,     /* Type 
34d0: 63 6f 64 65 20 66 6f 72 20 6f 62 6a 65 63 74 20  code for object 
34e0: 74 6f 20 64 65 73 74 72 6f 79 20 2a 2f 0a 20 20  to destroy */.  
34f0: 59 59 4d 49 4e 4f 52 54 59 50 45 20 2a 79 79 70  YYMINORTYPE *yyp
3500: 6d 69 6e 6f 72 20 20 20 2f 2a 20 54 68 65 20 6f  minor   /* The o
3510: 62 6a 65 63 74 20 74 6f 20 62 65 20 64 65 73 74  bject to be dest
3520: 72 6f 79 65 64 20 2a 2f 0a 29 7b 0a 20 20 50 61  royed */.){.  Pa
3530: 72 73 65 41 52 47 5f 46 45 54 43 48 3b 0a 20 20  rseARG_FETCH;.  
3540: 73 77 69 74 63 68 28 20 79 79 6d 61 6a 6f 72 20  switch( yymajor 
3550: 29 7b 0a 20 20 20 20 2f 2a 20 48 65 72 65 20 69  ){.    /* Here i
3560: 73 20 69 6e 73 65 72 74 65 64 20 74 68 65 20 61  s inserted the a
3570: 63 74 69 6f 6e 73 20 77 68 69 63 68 20 74 61 6b  ctions which tak
3580: 65 20 70 6c 61 63 65 20 77 68 65 6e 20 61 0a 20  e place when a. 
3590: 20 20 20 2a 2a 20 74 65 72 6d 69 6e 61 6c 20 6f     ** terminal o
35a0: 72 20 6e 6f 6e 2d 74 65 72 6d 69 6e 61 6c 20 69  r non-terminal i
35b0: 73 20 64 65 73 74 72 6f 79 65 64 2e 20 20 54 68  s destroyed.  Th
35c0: 69 73 20 63 61 6e 20 68 61 70 70 65 6e 0a 20 20  is can happen.  
35d0: 20 20 2a 2a 20 77 68 65 6e 20 74 68 65 20 73 79    ** when the sy
35e0: 6d 62 6f 6c 20 69 73 20 70 6f 70 70 65 64 20 66  mbol is popped f
35f0: 72 6f 6d 20 74 68 65 20 73 74 61 63 6b 20 64 75  rom the stack du
3600: 72 69 6e 67 20 61 0a 20 20 20 20 2a 2a 20 72 65  ring a.    ** re
3610: 64 75 63 65 20 6f 72 20 64 75 72 69 6e 67 20 65  duce or during e
3620: 72 72 6f 72 20 70 72 6f 63 65 73 73 69 6e 67 20  rror processing 
3630: 6f 72 20 77 68 65 6e 20 61 20 70 61 72 73 65 72  or when a parser
3640: 20 69 73 20 0a 20 20 20 20 2a 2a 20 62 65 69 6e   is .    ** bein
3650: 67 20 64 65 73 74 72 6f 79 65 64 20 62 65 66 6f  g destroyed befo
3660: 72 65 20 69 74 20 69 73 20 66 69 6e 69 73 68 65  re it is finishe
3670: 64 20 70 61 72 73 69 6e 67 2e 0a 20 20 20 20 2a  d parsing..    *
3680: 2a 0a 20 20 20 20 2a 2a 20 4e 6f 74 65 3a 20 64  *.    ** Note: d
3690: 75 72 69 6e 67 20 61 20 72 65 64 75 63 65 2c 20  uring a reduce, 
36a0: 74 68 65 20 6f 6e 6c 79 20 73 79 6d 62 6f 6c 73  the only symbols
36b0: 20 64 65 73 74 72 6f 79 65 64 20 61 72 65 20 74   destroyed are t
36c0: 68 6f 73 65 0a 20 20 20 20 2a 2a 20 77 68 69 63  hose.    ** whic
36d0: 68 20 61 70 70 65 61 72 20 6f 6e 20 74 68 65 20  h appear on the 
36e0: 52 48 53 20 6f 66 20 74 68 65 20 72 75 6c 65 2c  RHS of the rule,
36f0: 20 62 75 74 20 77 68 69 63 68 20 61 72 65 20 2a   but which are *
3700: 6e 6f 74 2a 20 75 73 65 64 0a 20 20 20 20 2a 2a  not* used.    **
3710: 20 69 6e 73 69 64 65 20 74 68 65 20 43 20 63 6f   inside the C co
3720: 64 65 2e 0a 20 20 20 20 2a 2f 0a 2f 2a 2a 2a 2a  de..    */./****
3730: 2a 2a 2a 2a 2a 20 42 65 67 69 6e 20 64 65 73 74  ***** Begin dest
3740: 72 75 63 74 6f 72 20 64 65 66 69 6e 69 74 69 6f  ructor definitio
3750: 6e 73 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ns *************
3760: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
3770: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 25 25 0a 2f  **********/.%%./
3780: 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 45 6e 64 20 64 65  ********* End de
3790: 73 74 72 75 63 74 6f 72 20 64 65 66 69 6e 69 74  structor definit
37a0: 69 6f 6e 73 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ions ***********
37b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
37c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a  **************/.
37d0: 20 20 20 20 64 65 66 61 75 6c 74 3a 20 20 62 72      default:  br
37e0: 65 61 6b 3b 20 20 20 2f 2a 20 49 66 20 6e 6f 20  eak;   /* If no 
37f0: 64 65 73 74 72 75 63 74 6f 72 20 61 63 74 69 6f  destructor actio
3800: 6e 20 73 70 65 63 69 66 69 65 64 3a 20 64 6f 20  n specified: do 
3810: 6e 6f 74 68 69 6e 67 20 2a 2f 0a 20 20 7d 0a 7d  nothing */.  }.}
3820: 0a 0a 2f 2a 0a 2a 2a 20 50 6f 70 20 74 68 65 20  ../*.** Pop the 
3830: 70 61 72 73 65 72 27 73 20 73 74 61 63 6b 20 6f  parser's stack o
3840: 6e 63 65 2e 0a 2a 2a 0a 2a 2a 20 49 66 20 74 68  nce..**.** If th
3850: 65 72 65 20 69 73 20 61 20 64 65 73 74 72 75 63  ere is a destruc
3860: 74 6f 72 20 72 6f 75 74 69 6e 65 20 61 73 73 6f  tor routine asso
3870: 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20  ciated with the 
3880: 74 6f 6b 65 6e 20 77 68 69 63 68 0a 2a 2a 20 69  token which.** i
3890: 73 20 70 6f 70 70 65 64 20 66 72 6f 6d 20 74 68  s popped from th
38a0: 65 20 73 74 61 63 6b 2c 20 74 68 65 6e 20 63 61  e stack, then ca
38b0: 6c 6c 20 69 74 2e 0a 2a 2f 0a 73 74 61 74 69 63  ll it..*/.static
38c0: 20 76 6f 69 64 20 79 79 5f 70 6f 70 5f 70 61 72   void yy_pop_par
38d0: 73 65 72 5f 73 74 61 63 6b 28 79 79 50 61 72 73  ser_stack(yyPars
38e0: 65 72 20 2a 70 50 61 72 73 65 72 29 7b 0a 20 20  er *pParser){.  
38f0: 79 79 53 74 61 63 6b 45 6e 74 72 79 20 2a 79 79  yyStackEntry *yy
3900: 74 6f 73 3b 0a 20 20 61 73 73 65 72 74 28 20 70  tos;.  assert( p
3910: 50 61 72 73 65 72 2d 3e 79 79 69 64 78 3e 3d 30  Parser->yyidx>=0
3920: 20 29 3b 0a 20 20 79 79 74 6f 73 20 3d 20 26 70   );.  yytos = &p
3930: 50 61 72 73 65 72 2d 3e 79 79 73 74 61 63 6b 5b  Parser->yystack[
3940: 70 50 61 72 73 65 72 2d 3e 79 79 69 64 78 2d 2d  pParser->yyidx--
3950: 5d 3b 0a 23 69 66 6e 64 65 66 20 4e 44 45 42 55  ];.#ifndef NDEBU
3960: 47 0a 20 20 69 66 28 20 79 79 54 72 61 63 65 46  G.  if( yyTraceF
3970: 49 4c 45 20 29 7b 0a 20 20 20 20 66 70 72 69 6e  ILE ){.    fprin
3980: 74 66 28 79 79 54 72 61 63 65 46 49 4c 45 2c 22  tf(yyTraceFILE,"
3990: 25 73 50 6f 70 70 69 6e 67 20 25 73 5c 6e 22 2c  %sPopping %s\n",
39a0: 0a 20 20 20 20 20 20 79 79 54 72 61 63 65 50 72  .      yyTracePr
39b0: 6f 6d 70 74 2c 0a 20 20 20 20 20 20 79 79 54 6f  ompt,.      yyTo
39c0: 6b 65 6e 4e 61 6d 65 5b 79 79 74 6f 73 2d 3e 6d  kenName[yytos->m
39d0: 61 6a 6f 72 5d 29 3b 0a 20 20 7d 0a 23 65 6e 64  ajor]);.  }.#end
39e0: 69 66 0a 20 20 79 79 5f 64 65 73 74 72 75 63 74  if.  yy_destruct
39f0: 6f 72 28 70 50 61 72 73 65 72 2c 20 79 79 74 6f  or(pParser, yyto
3a00: 73 2d 3e 6d 61 6a 6f 72 2c 20 26 79 79 74 6f 73  s->major, &yytos
3a10: 2d 3e 6d 69 6e 6f 72 29 3b 0a 7d 0a 0a 2f 2a 20  ->minor);.}../* 
3a20: 0a 2a 2a 20 44 65 61 6c 6c 6f 63 61 74 65 20 61  .** Deallocate a
3a30: 6e 64 20 64 65 73 74 72 6f 79 20 61 20 70 61 72  nd destroy a par
3a40: 73 65 72 2e 20 20 44 65 73 74 72 75 63 74 6f 72  ser.  Destructor
3a50: 73 20 61 72 65 20 63 61 6c 6c 65 64 20 66 6f 72  s are called for
3a60: 0a 2a 2a 20 61 6c 6c 20 73 74 61 63 6b 20 65 6c  .** all stack el
3a70: 65 6d 65 6e 74 73 20 62 65 66 6f 72 65 20 73 68  ements before sh
3a80: 75 74 74 69 6e 67 20 74 68 65 20 70 61 72 73 65  utting the parse
3a90: 72 20 64 6f 77 6e 2e 0a 2a 2a 0a 2a 2a 20 49 66  r down..**.** If
3aa0: 20 74 68 65 20 59 59 50 41 52 53 45 46 52 45 45   the YYPARSEFREE
3ab0: 4e 45 56 45 52 4e 55 4c 4c 20 6d 61 63 72 6f 20  NEVERNULL macro 
3ac0: 65 78 69 73 74 73 20 28 66 6f 72 20 65 78 61 6d  exists (for exam
3ad0: 70 6c 65 20 62 65 63 61 75 73 65 20 69 74 0a 2a  ple because it.*
3ae0: 2a 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20  * is defined in 
3af0: 61 20 25 69 6e 63 6c 75 64 65 20 73 65 63 74 69  a %include secti
3b00: 6f 6e 20 6f 66 20 74 68 65 20 69 6e 70 75 74 20  on of the input 
3b10: 67 72 61 6d 6d 61 72 29 20 74 68 65 6e 20 69 74  grammar) then it
3b20: 20 69 73 0a 2a 2a 20 61 73 73 75 6d 65 64 20 74   is.** assumed t
3b30: 68 61 74 20 74 68 65 20 69 6e 70 75 74 20 70 6f  hat the input po
3b40: 69 6e 74 65 72 20 69 73 20 6e 65 76 65 72 20 4e  inter is never N
3b50: 55 4c 4c 2e 0a 2a 2f 0a 76 6f 69 64 20 50 61 72  ULL..*/.void Par
3b60: 73 65 46 72 65 65 28 0a 20 20 76 6f 69 64 20 2a  seFree(.  void *
3b70: 70 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20  p,              
3b80: 20 20 20 20 20 20 2f 2a 20 54 68 65 20 70 61 72        /* The par
3b90: 73 65 72 20 74 6f 20 62 65 20 64 65 6c 65 74 65  ser to be delete
3ba0: 64 20 2a 2f 0a 20 20 76 6f 69 64 20 28 2a 66 72  d */.  void (*fr
3bb0: 65 65 50 72 6f 63 29 28 76 6f 69 64 2a 29 20 20  eeProc)(void*)  
3bc0: 20 20 20 2f 2a 20 46 75 6e 63 74 69 6f 6e 20 75     /* Function u
3bd0: 73 65 64 20 74 6f 20 72 65 63 6c 61 69 6d 20 6d  sed to reclaim m
3be0: 65 6d 6f 72 79 20 2a 2f 0a 29 7b 0a 20 20 79 79  emory */.){.  yy
3bf0: 50 61 72 73 65 72 20 2a 70 50 61 72 73 65 72 20  Parser *pParser 
3c00: 3d 20 28 79 79 50 61 72 73 65 72 2a 29 70 3b 0a  = (yyParser*)p;.
3c10: 23 69 66 6e 64 65 66 20 59 59 50 41 52 53 45 46  #ifndef YYPARSEF
3c20: 52 45 45 4e 45 56 45 52 4e 55 4c 4c 0a 20 20 69  REENEVERNULL.  i
3c30: 66 28 20 70 50 61 72 73 65 72 3d 3d 30 20 29 20  f( pParser==0 ) 
3c40: 72 65 74 75 72 6e 3b 0a 23 65 6e 64 69 66 0a 20  return;.#endif. 
3c50: 20 77 68 69 6c 65 28 20 70 50 61 72 73 65 72 2d   while( pParser-
3c60: 3e 79 79 69 64 78 3e 3d 30 20 29 20 79 79 5f 70  >yyidx>=0 ) yy_p
3c70: 6f 70 5f 70 61 72 73 65 72 5f 73 74 61 63 6b 28  op_parser_stack(
3c80: 70 50 61 72 73 65 72 29 3b 0a 23 69 66 20 59 59  pParser);.#if YY
3c90: 53 54 41 43 4b 44 45 50 54 48 3c 3d 30 0a 20 20  STACKDEPTH<=0.  
3ca0: 66 72 65 65 28 70 50 61 72 73 65 72 2d 3e 79 79  free(pParser->yy
3cb0: 73 74 61 63 6b 29 3b 0a 23 65 6e 64 69 66 0a 20  stack);.#endif. 
3cc0: 20 28 2a 66 72 65 65 50 72 6f 63 29 28 28 76 6f   (*freeProc)((vo
3cd0: 69 64 2a 29 70 50 61 72 73 65 72 29 3b 0a 7d 0a  id*)pParser);.}.
3ce0: 0a 2f 2a 0a 2a 2a 20 52 65 74 75 72 6e 20 74 68  ./*.** Return th
3cf0: 65 20 70 65 61 6b 20 64 65 70 74 68 20 6f 66 20  e peak depth of 
3d00: 74 68 65 20 73 74 61 63 6b 20 66 6f 72 20 61 20  the stack for a 
3d10: 70 61 72 73 65 72 2e 0a 2a 2f 0a 23 69 66 64 65  parser..*/.#ifde
3d20: 66 20 59 59 54 52 41 43 4b 4d 41 58 53 54 41 43  f YYTRACKMAXSTAC
3d30: 4b 44 45 50 54 48 0a 69 6e 74 20 50 61 72 73 65  KDEPTH.int Parse
3d40: 53 74 61 63 6b 50 65 61 6b 28 76 6f 69 64 20 2a  StackPeak(void *
3d50: 70 29 7b 0a 20 20 79 79 50 61 72 73 65 72 20 2a  p){.  yyParser *
3d60: 70 50 61 72 73 65 72 20 3d 20 28 79 79 50 61 72  pParser = (yyPar
3d70: 73 65 72 2a 29 70 3b 0a 20 20 72 65 74 75 72 6e  ser*)p;.  return
3d80: 20 70 50 61 72 73 65 72 2d 3e 79 79 69 64 78 4d   pParser->yyidxM
3d90: 61 78 3b 0a 7d 0a 23 65 6e 64 69 66 0a 0a 2f 2a  ax;.}.#endif../*
3da0: 0a 2a 2a 20 46 69 6e 64 20 74 68 65 20 61 70 70  .** Find the app
3db0: 72 6f 70 72 69 61 74 65 20 61 63 74 69 6f 6e 20  ropriate action 
3dc0: 66 6f 72 20 61 20 70 61 72 73 65 72 20 67 69 76  for a parser giv
3dd0: 65 6e 20 74 68 65 20 74 65 72 6d 69 6e 61 6c 0a  en the terminal.
3de0: 2a 2a 20 6c 6f 6f 6b 2d 61 68 65 61 64 20 74 6f  ** look-ahead to
3df0: 6b 65 6e 20 69 4c 6f 6f 6b 41 68 65 61 64 2e 0a  ken iLookAhead..
3e00: 2a 2f 0a 73 74 61 74 69 63 20 69 6e 74 20 79 79  */.static int yy
3e10: 5f 66 69 6e 64 5f 73 68 69 66 74 5f 61 63 74 69  _find_shift_acti
3e20: 6f 6e 28 0a 20 20 79 79 50 61 72 73 65 72 20 2a  on(.  yyParser *
3e30: 70 50 61 72 73 65 72 2c 20 20 20 20 20 20 20 20  pParser,        
3e40: 2f 2a 20 54 68 65 20 70 61 72 73 65 72 20 2a 2f  /* The parser */
3e50: 0a 20 20 59 59 43 4f 44 45 54 59 50 45 20 69 4c  .  YYCODETYPE iL
3e60: 6f 6f 6b 41 68 65 61 64 20 20 20 20 20 2f 2a 20  ookAhead     /* 
3e70: 54 68 65 20 6c 6f 6f 6b 2d 61 68 65 61 64 20 74  The look-ahead t
3e80: 6f 6b 65 6e 20 2a 2f 0a 29 7b 0a 20 20 69 6e 74  oken */.){.  int
3e90: 20 69 3b 0a 20 20 69 6e 74 20 73 74 61 74 65 6e   i;.  int staten
3ea0: 6f 20 3d 20 70 50 61 72 73 65 72 2d 3e 79 79 73  o = pParser->yys
3eb0: 74 61 63 6b 5b 70 50 61 72 73 65 72 2d 3e 79 79  tack[pParser->yy
3ec0: 69 64 78 5d 2e 73 74 61 74 65 6e 6f 3b 0a 20 0a  idx].stateno;. .
3ed0: 20 20 69 66 28 20 73 74 61 74 65 6e 6f 3e 3d 59    if( stateno>=Y
3ee0: 59 5f 4d 49 4e 5f 52 45 44 55 43 45 20 29 20 72  Y_MIN_REDUCE ) r
3ef0: 65 74 75 72 6e 20 73 74 61 74 65 6e 6f 3b 0a 20  eturn stateno;. 
3f00: 20 61 73 73 65 72 74 28 20 73 74 61 74 65 6e 6f   assert( stateno
3f10: 20 3c 3d 20 59 59 5f 53 48 49 46 54 5f 43 4f 55   <= YY_SHIFT_COU
3f20: 4e 54 20 29 3b 0a 20 20 64 6f 7b 0a 20 20 20 20  NT );.  do{.    
3f30: 69 20 3d 20 79 79 5f 73 68 69 66 74 5f 6f 66 73  i = yy_shift_ofs
3f40: 74 5b 73 74 61 74 65 6e 6f 5d 3b 0a 20 20 20 20  t[stateno];.    
3f50: 69 66 28 20 69 3d 3d 59 59 5f 53 48 49 46 54 5f  if( i==YY_SHIFT_
3f60: 55 53 45 5f 44 46 4c 54 20 29 20 72 65 74 75 72  USE_DFLT ) retur
3f70: 6e 20 79 79 5f 64 65 66 61 75 6c 74 5b 73 74 61  n yy_default[sta
3f80: 74 65 6e 6f 5d 3b 0a 20 20 20 20 61 73 73 65 72  teno];.    asser
3f90: 74 28 20 69 4c 6f 6f 6b 41 68 65 61 64 21 3d 59  t( iLookAhead!=Y
3fa0: 59 4e 4f 43 4f 44 45 20 29 3b 0a 20 20 20 20 69  YNOCODE );.    i
3fb0: 20 2b 3d 20 69 4c 6f 6f 6b 41 68 65 61 64 3b 0a   += iLookAhead;.
3fc0: 20 20 20 20 69 66 28 20 69 3c 30 20 7c 7c 20 69      if( i<0 || i
3fd0: 3e 3d 59 59 5f 41 43 54 54 41 42 5f 43 4f 55 4e  >=YY_ACTTAB_COUN
3fe0: 54 20 7c 7c 20 79 79 5f 6c 6f 6f 6b 61 68 65 61  T || yy_lookahea
3ff0: 64 5b 69 5d 21 3d 69 4c 6f 6f 6b 41 68 65 61 64  d[i]!=iLookAhead
4000: 20 29 7b 0a 20 20 20 20 20 20 69 66 28 20 69 4c   ){.      if( iL
4010: 6f 6f 6b 41 68 65 61 64 3e 30 20 29 7b 0a 23 69  ookAhead>0 ){.#i
4020: 66 64 65 66 20 59 59 46 41 4c 4c 42 41 43 4b 0a  fdef YYFALLBACK.
4030: 20 20 20 20 20 20 20 20 59 59 43 4f 44 45 54 59          YYCODETY
4040: 50 45 20 69 46 61 6c 6c 62 61 63 6b 3b 20 20 20  PE iFallback;   
4050: 20 20 20 20 20 20 20 20 20 2f 2a 20 46 61 6c 6c           /* Fall
4060: 62 61 63 6b 20 74 6f 6b 65 6e 20 2a 2f 0a 20 20  back token */.  
4070: 20 20 20 20 20 20 69 66 28 20 69 4c 6f 6f 6b 41        if( iLookA
4080: 68 65 61 64 3c 73 69 7a 65 6f 66 28 79 79 46 61  head<sizeof(yyFa
4090: 6c 6c 62 61 63 6b 29 2f 73 69 7a 65 6f 66 28 79  llback)/sizeof(y
40a0: 79 46 61 6c 6c 62 61 63 6b 5b 30 5d 29 0a 20 20  yFallback[0]).  
40b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 26 26 20               && 
40c0: 28 69 46 61 6c 6c 62 61 63 6b 20 3d 20 79 79 46  (iFallback = yyF
40d0: 61 6c 6c 62 61 63 6b 5b 69 4c 6f 6f 6b 41 68 65  allback[iLookAhe
40e0: 61 64 5d 29 21 3d 30 20 29 7b 0a 23 69 66 6e 64  ad])!=0 ){.#ifnd
40f0: 65 66 20 4e 44 45 42 55 47 0a 20 20 20 20 20 20  ef NDEBUG.      
4100: 20 20 20 20 69 66 28 20 79 79 54 72 61 63 65 46      if( yyTraceF
4110: 49 4c 45 20 29 7b 0a 20 20 20 20 20 20 20 20 20  ILE ){.         
4120: 20 20 20 66 70 72 69 6e 74 66 28 79 79 54 72 61     fprintf(yyTra
4130: 63 65 46 49 4c 45 2c 20 22 25 73 46 41 4c 4c 42  ceFILE, "%sFALLB
4140: 41 43 4b 20 25 73 20 3d 3e 20 25 73 5c 6e 22 2c  ACK %s => %s\n",
4150: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
4160: 79 79 54 72 61 63 65 50 72 6f 6d 70 74 2c 20 79  yyTracePrompt, y
4170: 79 54 6f 6b 65 6e 4e 61 6d 65 5b 69 4c 6f 6f 6b  yTokenName[iLook
4180: 41 68 65 61 64 5d 2c 20 79 79 54 6f 6b 65 6e 4e  Ahead], yyTokenN
4190: 61 6d 65 5b 69 46 61 6c 6c 62 61 63 6b 5d 29 3b  ame[iFallback]);
41a0: 0a 20 20 20 20 20 20 20 20 20 20 7d 0a 23 65 6e  .          }.#en
41b0: 64 69 66 0a 20 20 20 20 20 20 20 20 20 20 61 73  dif.          as
41c0: 73 65 72 74 28 20 79 79 46 61 6c 6c 62 61 63 6b  sert( yyFallback
41d0: 5b 69 46 61 6c 6c 62 61 63 6b 5d 3d 3d 30 20 29  [iFallback]==0 )
41e0: 3b 20 2f 2a 20 46 61 6c 6c 62 61 63 6b 20 6c 6f  ; /* Fallback lo
41f0: 6f 70 20 6d 75 73 74 20 74 65 72 6d 69 6e 61 74  op must terminat
4200: 65 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 69  e */.          i
4210: 4c 6f 6f 6b 41 68 65 61 64 20 3d 20 69 46 61 6c  LookAhead = iFal
4220: 6c 62 61 63 6b 3b 0a 20 20 20 20 20 20 20 20 20  lback;.         
4230: 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20   continue;.     
4240: 20 20 20 7d 0a 23 65 6e 64 69 66 0a 23 69 66 64     }.#endif.#ifd
4250: 65 66 20 59 59 57 49 4c 44 43 41 52 44 0a 20 20  ef YYWILDCARD.  
4260: 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20        {.        
4270: 20 20 69 6e 74 20 6a 20 3d 20 69 20 2d 20 69 4c    int j = i - iL
4280: 6f 6f 6b 41 68 65 61 64 20 2b 20 59 59 57 49 4c  ookAhead + YYWIL
4290: 44 43 41 52 44 3b 0a 20 20 20 20 20 20 20 20 20  DCARD;.         
42a0: 20 69 66 28 20 0a 23 69 66 20 59 59 5f 53 48 49   if( .#if YY_SHI
42b0: 46 54 5f 4d 49 4e 2b 59 59 57 49 4c 44 43 41 52  FT_MIN+YYWILDCAR
42c0: 44 3c 30 0a 20 20 20 20 20 20 20 20 20 20 20 20  D<0.            
42d0: 6a 3e 3d 30 20 26 26 0a 23 65 6e 64 69 66 0a 23  j>=0 &&.#endif.#
42e0: 69 66 20 59 59 5f 53 48 49 46 54 5f 4d 41 58 2b  if YY_SHIFT_MAX+
42f0: 59 59 57 49 4c 44 43 41 52 44 3e 3d 59 59 5f 41  YYWILDCARD>=YY_A
4300: 43 54 54 41 42 5f 43 4f 55 4e 54 0a 20 20 20 20  CTTAB_COUNT.    
4310: 20 20 20 20 20 20 20 20 6a 3c 59 59 5f 41 43 54          j<YY_ACT
4320: 54 41 42 5f 43 4f 55 4e 54 20 26 26 0a 23 65 6e  TAB_COUNT &&.#en
4330: 64 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20  dif.            
4340: 79 79 5f 6c 6f 6f 6b 61 68 65 61 64 5b 6a 5d 3d  yy_lookahead[j]=
4350: 3d 59 59 57 49 4c 44 43 41 52 44 0a 20 20 20 20  =YYWILDCARD.    
4360: 20 20 20 20 20 20 29 7b 0a 23 69 66 6e 64 65 66        ){.#ifndef
4370: 20 4e 44 45 42 55 47 0a 20 20 20 20 20 20 20 20   NDEBUG.        
4380: 20 20 20 20 69 66 28 20 79 79 54 72 61 63 65 46      if( yyTraceF
4390: 49 4c 45 20 29 7b 0a 20 20 20 20 20 20 20 20 20  ILE ){.         
43a0: 20 20 20 20 20 66 70 72 69 6e 74 66 28 79 79 54       fprintf(yyT
43b0: 72 61 63 65 46 49 4c 45 2c 20 22 25 73 57 49 4c  raceFILE, "%sWIL
43c0: 44 43 41 52 44 20 25 73 20 3d 3e 20 25 73 5c 6e  DCARD %s => %s\n
43d0: 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ",.             
43e0: 20 20 20 20 79 79 54 72 61 63 65 50 72 6f 6d 70      yyTracePromp
43f0: 74 2c 20 79 79 54 6f 6b 65 6e 4e 61 6d 65 5b 69  t, yyTokenName[i
4400: 4c 6f 6f 6b 41 68 65 61 64 5d 2c 0a 20 20 20 20  LookAhead],.    
4410: 20 20 20 20 20 20 20 20 20 20 20 20 20 79 79 54               yyT
4420: 6f 6b 65 6e 4e 61 6d 65 5b 59 59 57 49 4c 44 43  okenName[YYWILDC
4430: 41 52 44 5d 29 3b 0a 20 20 20 20 20 20 20 20 20  ARD]);.         
4440: 20 20 20 7d 0a 23 65 6e 64 69 66 20 2f 2a 20 4e     }.#endif /* N
4450: 44 45 42 55 47 20 2a 2f 0a 20 20 20 20 20 20 20  DEBUG */.       
4460: 20 20 20 20 20 72 65 74 75 72 6e 20 79 79 5f 61       return yy_a
4470: 63 74 69 6f 6e 5b 6a 5d 3b 0a 20 20 20 20 20 20  ction[j];.      
4480: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a      }.        }.
4490: 23 65 6e 64 69 66 20 2f 2a 20 59 59 57 49 4c 44  #endif /* YYWILD
44a0: 43 41 52 44 20 2a 2f 0a 20 20 20 20 20 20 7d 0a  CARD */.      }.
44b0: 20 20 20 20 20 20 72 65 74 75 72 6e 20 79 79 5f        return yy_
44c0: 64 65 66 61 75 6c 74 5b 73 74 61 74 65 6e 6f 5d  default[stateno]
44d0: 3b 0a 20 20 20 20 7d 65 6c 73 65 7b 0a 20 20 20  ;.    }else{.   
44e0: 20 20 20 72 65 74 75 72 6e 20 79 79 5f 61 63 74     return yy_act
44f0: 69 6f 6e 5b 69 5d 3b 0a 20 20 20 20 7d 0a 20 20  ion[i];.    }.  
4500: 7d 77 68 69 6c 65 28 31 29 3b 0a 7d 0a 0a 2f 2a  }while(1);.}../*
4510: 0a 2a 2a 20 46 69 6e 64 20 74 68 65 20 61 70 70  .** Find the app
4520: 72 6f 70 72 69 61 74 65 20 61 63 74 69 6f 6e 20  ropriate action 
4530: 66 6f 72 20 61 20 70 61 72 73 65 72 20 67 69 76  for a parser giv
4540: 65 6e 20 74 68 65 20 6e 6f 6e 2d 74 65 72 6d 69  en the non-termi
4550: 6e 61 6c 0a 2a 2a 20 6c 6f 6f 6b 2d 61 68 65 61  nal.** look-ahea
4560: 64 20 74 6f 6b 65 6e 20 69 4c 6f 6f 6b 41 68 65  d token iLookAhe
4570: 61 64 2e 0a 2a 2f 0a 73 74 61 74 69 63 20 69 6e  ad..*/.static in
4580: 74 20 79 79 5f 66 69 6e 64 5f 72 65 64 75 63 65  t yy_find_reduce
4590: 5f 61 63 74 69 6f 6e 28 0a 20 20 69 6e 74 20 73  _action(.  int s
45a0: 74 61 74 65 6e 6f 2c 20 20 20 20 20 20 20 20 20  tateno,         
45b0: 20 20 20 20 20 2f 2a 20 43 75 72 72 65 6e 74 20       /* Current 
45c0: 73 74 61 74 65 20 6e 75 6d 62 65 72 20 2a 2f 0a  state number */.
45d0: 20 20 59 59 43 4f 44 45 54 59 50 45 20 69 4c 6f    YYCODETYPE iLo
45e0: 6f 6b 41 68 65 61 64 20 20 20 20 20 2f 2a 20 54  okAhead     /* T
45f0: 68 65 20 6c 6f 6f 6b 2d 61 68 65 61 64 20 74 6f  he look-ahead to
4600: 6b 65 6e 20 2a 2f 0a 29 7b 0a 20 20 69 6e 74 20  ken */.){.  int 
4610: 69 3b 0a 23 69 66 64 65 66 20 59 59 45 52 52 4f  i;.#ifdef YYERRO
4620: 52 53 59 4d 42 4f 4c 0a 20 20 69 66 28 20 73 74  RSYMBOL.  if( st
4630: 61 74 65 6e 6f 3e 59 59 5f 52 45 44 55 43 45 5f  ateno>YY_REDUCE_
4640: 43 4f 55 4e 54 20 29 7b 0a 20 20 20 20 72 65 74  COUNT ){.    ret
4650: 75 72 6e 20 79 79 5f 64 65 66 61 75 6c 74 5b 73  urn yy_default[s
4660: 74 61 74 65 6e 6f 5d 3b 0a 20 20 7d 0a 23 65 6c  tateno];.  }.#el
4670: 73 65 0a 20 20 61 73 73 65 72 74 28 20 73 74 61  se.  assert( sta
4680: 74 65 6e 6f 3c 3d 59 59 5f 52 45 44 55 43 45 5f  teno<=YY_REDUCE_
4690: 43 4f 55 4e 54 20 29 3b 0a 23 65 6e 64 69 66 0a  COUNT );.#endif.
46a0: 20 20 69 20 3d 20 79 79 5f 72 65 64 75 63 65 5f    i = yy_reduce_
46b0: 6f 66 73 74 5b 73 74 61 74 65 6e 6f 5d 3b 0a 20  ofst[stateno];. 
46c0: 20 61 73 73 65 72 74 28 20 69 21 3d 59 59 5f 52   assert( i!=YY_R
46d0: 45 44 55 43 45 5f 55 53 45 5f 44 46 4c 54 20 29  EDUCE_USE_DFLT )
46e0: 3b 0a 20 20 61 73 73 65 72 74 28 20 69 4c 6f 6f  ;.  assert( iLoo
46f0: 6b 41 68 65 61 64 21 3d 59 59 4e 4f 43 4f 44 45  kAhead!=YYNOCODE
4700: 20 29 3b 0a 20 20 69 20 2b 3d 20 69 4c 6f 6f 6b   );.  i += iLook
4710: 41 68 65 61 64 3b 0a 23 69 66 64 65 66 20 59 59  Ahead;.#ifdef YY
4720: 45 52 52 4f 52 53 59 4d 42 4f 4c 0a 20 20 69 66  ERRORSYMBOL.  if
4730: 28 20 69 3c 30 20 7c 7c 20 69 3e 3d 59 59 5f 41  ( i<0 || i>=YY_A
4740: 43 54 54 41 42 5f 43 4f 55 4e 54 20 7c 7c 20 79  CTTAB_COUNT || y
4750: 79 5f 6c 6f 6f 6b 61 68 65 61 64 5b 69 5d 21 3d  y_lookahead[i]!=
4760: 69 4c 6f 6f 6b 41 68 65 61 64 20 29 7b 0a 20 20  iLookAhead ){.  
4770: 20 20 72 65 74 75 72 6e 20 79 79 5f 64 65 66 61    return yy_defa
4780: 75 6c 74 5b 73 74 61 74 65 6e 6f 5d 3b 0a 20 20  ult[stateno];.  
4790: 7d 0a 23 65 6c 73 65 0a 20 20 61 73 73 65 72 74  }.#else.  assert
47a0: 28 20 69 3e 3d 30 20 26 26 20 69 3c 59 59 5f 41  ( i>=0 && i<YY_A
47b0: 43 54 54 41 42 5f 43 4f 55 4e 54 20 29 3b 0a 20  CTTAB_COUNT );. 
47c0: 20 61 73 73 65 72 74 28 20 79 79 5f 6c 6f 6f 6b   assert( yy_look
47d0: 61 68 65 61 64 5b 69 5d 3d 3d 69 4c 6f 6f 6b 41  ahead[i]==iLookA
47e0: 68 65 61 64 20 29 3b 0a 23 65 6e 64 69 66 0a 20  head );.#endif. 
47f0: 20 72 65 74 75 72 6e 20 79 79 5f 61 63 74 69 6f   return yy_actio
4800: 6e 5b 69 5d 3b 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 54  n[i];.}../*.** T
4810: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 72 6f 75  he following rou
4820: 74 69 6e 65 20 69 73 20 63 61 6c 6c 65 64 20 69  tine is called i
4830: 66 20 74 68 65 20 73 74 61 63 6b 20 6f 76 65 72  f the stack over
4840: 66 6c 6f 77 73 2e 0a 2a 2f 0a 73 74 61 74 69 63  flows..*/.static
4850: 20 76 6f 69 64 20 79 79 53 74 61 63 6b 4f 76 65   void yyStackOve
4860: 72 66 6c 6f 77 28 79 79 50 61 72 73 65 72 20 2a  rflow(yyParser *
4870: 79 79 70 50 61 72 73 65 72 29 7b 0a 20 20 20 50  yypParser){.   P
4880: 61 72 73 65 41 52 47 5f 46 45 54 43 48 3b 0a 20  arseARG_FETCH;. 
4890: 20 20 79 79 70 50 61 72 73 65 72 2d 3e 79 79 69    yypParser->yyi
48a0: 64 78 2d 2d 3b 0a 23 69 66 6e 64 65 66 20 4e 44  dx--;.#ifndef ND
48b0: 45 42 55 47 0a 20 20 20 69 66 28 20 79 79 54 72  EBUG.   if( yyTr
48c0: 61 63 65 46 49 4c 45 20 29 7b 0a 20 20 20 20 20  aceFILE ){.     
48d0: 66 70 72 69 6e 74 66 28 79 79 54 72 61 63 65 46  fprintf(yyTraceF
48e0: 49 4c 45 2c 22 25 73 53 74 61 63 6b 20 4f 76 65  ILE,"%sStack Ove
48f0: 72 66 6c 6f 77 21 5c 6e 22 2c 79 79 54 72 61 63  rflow!\n",yyTrac
4900: 65 50 72 6f 6d 70 74 29 3b 0a 20 20 20 7d 0a 23  ePrompt);.   }.#
4910: 65 6e 64 69 66 0a 20 20 20 77 68 69 6c 65 28 20  endif.   while( 
4920: 79 79 70 50 61 72 73 65 72 2d 3e 79 79 69 64 78  yypParser->yyidx
4930: 3e 3d 30 20 29 20 79 79 5f 70 6f 70 5f 70 61 72  >=0 ) yy_pop_par
4940: 73 65 72 5f 73 74 61 63 6b 28 79 79 70 50 61 72  ser_stack(yypPar
4950: 73 65 72 29 3b 0a 20 20 20 2f 2a 20 48 65 72 65  ser);.   /* Here
4960: 20 63 6f 64 65 20 69 73 20 69 6e 73 65 72 74 65   code is inserte
4970: 64 20 77 68 69 63 68 20 77 69 6c 6c 20 65 78 65  d which will exe
4980: 63 75 74 65 20 69 66 20 74 68 65 20 70 61 72 73  cute if the pars
4990: 65 72 0a 20 20 20 2a 2a 20 73 74 61 63 6b 20 65  er.   ** stack e
49a0: 76 65 72 79 20 6f 76 65 72 66 6c 6f 77 73 20 2a  very overflows *
49b0: 2f 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 20 42 65 67 69  /./******** Begi
49c0: 6e 20 25 73 74 61 63 6b 5f 6f 76 65 72 66 6c 6f  n %stack_overflo
49d0: 77 20 63 6f 64 65 20 2a 2a 2a 2a 2a 2a 2a 2a 2a  w code *********
49e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
49f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
4a00: 2a 2f 0a 25 25 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 20  */.%%./******** 
4a10: 45 6e 64 20 25 73 74 61 63 6b 5f 6f 76 65 72 66  End %stack_overf
4a20: 6c 6f 77 20 63 6f 64 65 20 2a 2a 2a 2a 2a 2a 2a  low code *******
4a30: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
4a40: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
4a50: 2a 2a 2a 2a 2a 2f 0a 20 20 20 50 61 72 73 65 41  *****/.   ParseA
4a60: 52 47 5f 53 54 4f 52 45 3b 20 2f 2a 20 53 75 70  RG_STORE; /* Sup
4a70: 70 72 65 73 73 20 77 61 72 6e 69 6e 67 20 61 62  press warning ab
4a80: 6f 75 74 20 75 6e 75 73 65 64 20 25 65 78 74 72  out unused %extr
4a90: 61 5f 61 72 67 75 6d 65 6e 74 20 76 61 72 20 2a  a_argument var *
4aa0: 2f 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 50 72 69 6e 74  /.}../*.** Print
4ab0: 20 74 72 61 63 69 6e 67 20 69 6e 66 6f 72 6d 61   tracing informa
4ac0: 74 69 6f 6e 20 66 6f 72 20 61 20 53 48 49 46 54  tion for a SHIFT
4ad0: 20 61 63 74 69 6f 6e 0a 2a 2f 0a 23 69 66 6e 64   action.*/.#ifnd
4ae0: 65 66 20 4e 44 45 42 55 47 0a 73 74 61 74 69 63  ef NDEBUG.static
4af0: 20 76 6f 69 64 20 79 79 54 72 61 63 65 53 68 69   void yyTraceShi
4b00: 66 74 28 79 79 50 61 72 73 65 72 20 2a 79 79 70  ft(yyParser *yyp
4b10: 50 61 72 73 65 72 2c 20 69 6e 74 20 79 79 4e 65  Parser, int yyNe
4b20: 77 53 74 61 74 65 29 7b 0a 20 20 69 66 28 20 79  wState){.  if( y
4b30: 79 54 72 61 63 65 46 49 4c 45 20 29 7b 0a 20 20  yTraceFILE ){.  
4b40: 20 20 69 66 28 20 79 79 4e 65 77 53 74 61 74 65    if( yyNewState
4b50: 3c 59 59 4e 53 54 41 54 45 20 29 7b 0a 20 20 20  <YYNSTATE ){.   
4b60: 20 20 20 66 70 72 69 6e 74 66 28 79 79 54 72 61     fprintf(yyTra
4b70: 63 65 46 49 4c 45 2c 22 25 73 53 68 69 66 74 20  ceFILE,"%sShift 
4b80: 27 25 73 27 2c 20 67 6f 20 74 6f 20 73 74 61 74  '%s', go to stat
4b90: 65 20 25 64 5c 6e 22 2c 0a 20 20 20 20 20 20 20  e %d\n",.       
4ba0: 20 20 79 79 54 72 61 63 65 50 72 6f 6d 70 74 2c    yyTracePrompt,
4bb0: 79 79 54 6f 6b 65 6e 4e 61 6d 65 5b 79 79 70 50  yyTokenName[yypP
4bc0: 61 72 73 65 72 2d 3e 79 79 73 74 61 63 6b 5b 79  arser->yystack[y
4bd0: 79 70 50 61 72 73 65 72 2d 3e 79 79 69 64 78 5d  ypParser->yyidx]
4be0: 2e 6d 61 6a 6f 72 5d 2c 0a 20 20 20 20 20 20 20  .major],.       
4bf0: 20 20 79 79 4e 65 77 53 74 61 74 65 29 3b 0a 20    yyNewState);. 
4c00: 20 20 20 7d 65 6c 73 65 7b 0a 20 20 20 20 20 20     }else{.      
4c10: 66 70 72 69 6e 74 66 28 79 79 54 72 61 63 65 46  fprintf(yyTraceF
4c20: 49 4c 45 2c 22 25 73 53 68 69 66 74 20 27 25 73  ILE,"%sShift '%s
4c30: 27 5c 6e 22 2c 0a 20 20 20 20 20 20 20 20 20 79  '\n",.         y
4c40: 79 54 72 61 63 65 50 72 6f 6d 70 74 2c 79 79 54  yTracePrompt,yyT
4c50: 6f 6b 65 6e 4e 61 6d 65 5b 79 79 70 50 61 72 73  okenName[yypPars
4c60: 65 72 2d 3e 79 79 73 74 61 63 6b 5b 79 79 70 50  er->yystack[yypP
4c70: 61 72 73 65 72 2d 3e 79 79 69 64 78 5d 2e 6d 61  arser->yyidx].ma
4c80: 6a 6f 72 5d 29 3b 0a 20 20 20 20 7d 0a 20 20 7d  jor]);.    }.  }
4c90: 0a 7d 0a 23 65 6c 73 65 0a 23 20 64 65 66 69 6e  .}.#else.# defin
4ca0: 65 20 79 79 54 72 61 63 65 53 68 69 66 74 28 58  e yyTraceShift(X
4cb0: 2c 59 29 0a 23 65 6e 64 69 66 0a 0a 2f 2a 0a 2a  ,Y).#endif../*.*
4cc0: 2a 20 50 65 72 66 6f 72 6d 20 61 20 73 68 69 66  * Perform a shif
4cd0: 74 20 61 63 74 69 6f 6e 2e 0a 2a 2f 0a 73 74 61  t action..*/.sta
4ce0: 74 69 63 20 76 6f 69 64 20 79 79 5f 73 68 69 66  tic void yy_shif
4cf0: 74 28 0a 20 20 79 79 50 61 72 73 65 72 20 2a 79  t(.  yyParser *y
4d00: 79 70 50 61 72 73 65 72 2c 20 20 20 20 20 20 20  ypParser,       
4d10: 20 20 20 2f 2a 20 54 68 65 20 70 61 72 73 65 72     /* The parser
4d20: 20 74 6f 20 62 65 20 73 68 69 66 74 65 64 20 2a   to be shifted *
4d30: 2f 0a 20 20 69 6e 74 20 79 79 4e 65 77 53 74 61  /.  int yyNewSta
4d40: 74 65 2c 20 20 20 20 20 20 20 20 20 20 20 20 20  te,             
4d50: 20 20 2f 2a 20 54 68 65 20 6e 65 77 20 73 74 61    /* The new sta
4d60: 74 65 20 74 6f 20 73 68 69 66 74 20 69 6e 20 2a  te to shift in *
4d70: 2f 0a 20 20 69 6e 74 20 79 79 4d 61 6a 6f 72 2c  /.  int yyMajor,
4d80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4d90: 20 20 2f 2a 20 54 68 65 20 6d 61 6a 6f 72 20 74    /* The major t
4da0: 6f 6b 65 6e 20 74 6f 20 73 68 69 66 74 20 69 6e  oken to shift in
4db0: 20 2a 2f 0a 20 20 50 61 72 73 65 54 4f 4b 45 4e   */.  ParseTOKEN
4dc0: 54 59 50 45 20 79 79 4d 69 6e 6f 72 20 20 20 20  TYPE yyMinor    
4dd0: 20 20 20 20 2f 2a 20 54 68 65 20 6d 69 6e 6f 72      /* The minor
4de0: 20 74 6f 6b 65 6e 20 74 6f 20 73 68 69 66 74 20   token to shift 
4df0: 69 6e 20 2a 2f 0a 29 7b 0a 20 20 79 79 53 74 61  in */.){.  yySta
4e00: 63 6b 45 6e 74 72 79 20 2a 79 79 74 6f 73 3b 0a  ckEntry *yytos;.
4e10: 20 20 79 79 70 50 61 72 73 65 72 2d 3e 79 79 69    yypParser->yyi
4e20: 64 78 2b 2b 3b 0a 23 69 66 64 65 66 20 59 59 54  dx++;.#ifdef YYT
4e30: 52 41 43 4b 4d 41 58 53 54 41 43 4b 44 45 50 54  RACKMAXSTACKDEPT
4e40: 48 0a 20 20 69 66 28 20 79 79 70 50 61 72 73 65  H.  if( yypParse
4e50: 72 2d 3e 79 79 69 64 78 3e 79 79 70 50 61 72 73  r->yyidx>yypPars
4e60: 65 72 2d 3e 79 79 69 64 78 4d 61 78 20 29 7b 0a  er->yyidxMax ){.
4e70: 20 20 20 20 79 79 70 50 61 72 73 65 72 2d 3e 79      yypParser->y
4e80: 79 69 64 78 4d 61 78 20 3d 20 79 79 70 50 61 72  yidxMax = yypPar
4e90: 73 65 72 2d 3e 79 79 69 64 78 3b 0a 20 20 7d 0a  ser->yyidx;.  }.
4ea0: 23 65 6e 64 69 66 0a 23 69 66 20 59 59 53 54 41  #endif.#if YYSTA
4eb0: 43 4b 44 45 50 54 48 3e 30 20 0a 20 20 69 66 28  CKDEPTH>0 .  if(
4ec0: 20 79 79 70 50 61 72 73 65 72 2d 3e 79 79 69 64   yypParser->yyid
4ed0: 78 3e 3d 59 59 53 54 41 43 4b 44 45 50 54 48 20  x>=YYSTACKDEPTH 
4ee0: 29 7b 0a 20 20 20 20 79 79 53 74 61 63 6b 4f 76  ){.    yyStackOv
4ef0: 65 72 66 6c 6f 77 28 79 79 70 50 61 72 73 65 72  erflow(yypParser
4f00: 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 3b 0a 20  );.    return;. 
4f10: 20 7d 0a 23 65 6c 73 65 0a 20 20 69 66 28 20 79   }.#else.  if( y
4f20: 79 70 50 61 72 73 65 72 2d 3e 79 79 69 64 78 3e  ypParser->yyidx>
4f30: 3d 79 79 70 50 61 72 73 65 72 2d 3e 79 79 73 74  =yypParser->yyst
4f40: 6b 73 7a 20 29 7b 0a 20 20 20 20 79 79 47 72 6f  ksz ){.    yyGro
4f50: 77 53 74 61 63 6b 28 79 79 70 50 61 72 73 65 72  wStack(yypParser
4f60: 29 3b 0a 20 20 20 20 69 66 28 20 79 79 70 50 61  );.    if( yypPa
4f70: 72 73 65 72 2d 3e 79 79 69 64 78 3e 3d 79 79 70  rser->yyidx>=yyp
4f80: 50 61 72 73 65 72 2d 3e 79 79 73 74 6b 73 7a 20  Parser->yystksz 
4f90: 29 7b 0a 20 20 20 20 20 20 79 79 53 74 61 63 6b  ){.      yyStack
4fa0: 4f 76 65 72 66 6c 6f 77 28 79 79 70 50 61 72 73  Overflow(yypPars
4fb0: 65 72 29 3b 0a 20 20 20 20 20 20 72 65 74 75 72  er);.      retur
4fc0: 6e 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 23 65 6e  n;.    }.  }.#en
4fd0: 64 69 66 0a 20 20 79 79 74 6f 73 20 3d 20 26 79  dif.  yytos = &y
4fe0: 79 70 50 61 72 73 65 72 2d 3e 79 79 73 74 61 63  ypParser->yystac
4ff0: 6b 5b 79 79 70 50 61 72 73 65 72 2d 3e 79 79 69  k[yypParser->yyi
5000: 64 78 5d 3b 0a 20 20 79 79 74 6f 73 2d 3e 73 74  dx];.  yytos->st
5010: 61 74 65 6e 6f 20 3d 20 28 59 59 41 43 54 49 4f  ateno = (YYACTIO
5020: 4e 54 59 50 45 29 79 79 4e 65 77 53 74 61 74 65  NTYPE)yyNewState
5030: 3b 0a 20 20 79 79 74 6f 73 2d 3e 6d 61 6a 6f 72  ;.  yytos->major
5040: 20 3d 20 28 59 59 43 4f 44 45 54 59 50 45 29 79   = (YYCODETYPE)y
5050: 79 4d 61 6a 6f 72 3b 0a 20 20 79 79 74 6f 73 2d  yMajor;.  yytos-
5060: 3e 6d 69 6e 6f 72 2e 79 79 30 20 3d 20 79 79 4d  >minor.yy0 = yyM
5070: 69 6e 6f 72 3b 0a 20 20 79 79 54 72 61 63 65 53  inor;.  yyTraceS
5080: 68 69 66 74 28 79 79 70 50 61 72 73 65 72 2c 20  hift(yypParser, 
5090: 79 79 4e 65 77 53 74 61 74 65 29 3b 0a 7d 0a 0a  yyNewState);.}..
50a0: 2f 2a 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  /* The following
50b0: 20 74 61 62 6c 65 20 63 6f 6e 74 61 69 6e 73 20   table contains 
50c0: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75  information abou
50d0: 74 20 65 76 65 72 79 20 72 75 6c 65 20 74 68 61  t every rule tha
50e0: 74 0a 2a 2a 20 69 73 20 75 73 65 64 20 64 75 72  t.** is used dur
50f0: 69 6e 67 20 74 68 65 20 72 65 64 75 63 65 2e 0a  ing the reduce..
5100: 2a 2f 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20  */.static const 
5110: 73 74 72 75 63 74 20 7b 0a 20 20 59 59 43 4f 44  struct {.  YYCOD
5120: 45 54 59 50 45 20 6c 68 73 3b 20 20 20 20 20 20  ETYPE lhs;      
5130: 20 20 20 2f 2a 20 53 79 6d 62 6f 6c 20 6f 6e 20     /* Symbol on 
5140: 74 68 65 20 6c 65 66 74 2d 68 61 6e 64 20 73 69  the left-hand si
5150: 64 65 20 6f 66 20 74 68 65 20 72 75 6c 65 20 2a  de of the rule *
5160: 2f 0a 20 20 75 6e 73 69 67 6e 65 64 20 63 68 61  /.  unsigned cha
5170: 72 20 6e 72 68 73 3b 20 20 20 20 20 2f 2a 20 4e  r nrhs;     /* N
5180: 75 6d 62 65 72 20 6f 66 20 72 69 67 68 74 2d 68  umber of right-h
5190: 61 6e 64 20 73 69 64 65 20 73 79 6d 62 6f 6c 73  and side symbols
51a0: 20 69 6e 20 74 68 65 20 72 75 6c 65 20 2a 2f 0a   in the rule */.
51b0: 7d 20 79 79 52 75 6c 65 49 6e 66 6f 5b 5d 20 3d  } yyRuleInfo[] =
51c0: 20 7b 0a 25 25 0a 7d 3b 0a 0a 73 74 61 74 69 63   {.%%.};..static
51d0: 20 76 6f 69 64 20 79 79 5f 61 63 63 65 70 74 28   void yy_accept(
51e0: 79 79 50 61 72 73 65 72 2a 29 3b 20 20 2f 2a 20  yyParser*);  /* 
51f0: 46 6f 72 77 61 72 64 20 44 65 63 6c 61 72 61 74  Forward Declarat
5200: 69 6f 6e 20 2a 2f 0a 0a 2f 2a 0a 2a 2a 20 50 65  ion */../*.** Pe
5210: 72 66 6f 72 6d 20 61 20 72 65 64 75 63 65 20 61  rform a reduce a
5220: 63 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 73 68  ction and the sh
5230: 69 66 74 20 74 68 61 74 20 6d 75 73 74 20 69 6d  ift that must im
5240: 6d 65 64 69 61 74 65 6c 79 0a 2a 2a 20 66 6f 6c  mediately.** fol
5250: 6c 6f 77 20 74 68 65 20 72 65 64 75 63 65 2e 0a  low the reduce..
5260: 2a 2f 0a 73 74 61 74 69 63 20 76 6f 69 64 20 79  */.static void y
5270: 79 5f 72 65 64 75 63 65 28 0a 20 20 79 79 50 61  y_reduce(.  yyPa
5280: 72 73 65 72 20 2a 79 79 70 50 61 72 73 65 72 2c  rser *yypParser,
5290: 20 20 20 20 20 20 20 20 20 2f 2a 20 54 68 65 20           /* The 
52a0: 70 61 72 73 65 72 20 2a 2f 0a 20 20 69 6e 74 20  parser */.  int 
52b0: 79 79 72 75 6c 65 6e 6f 20 20 20 20 20 20 20 20  yyruleno        
52c0: 20 20 20 20 20 20 20 20 20 2f 2a 20 4e 75 6d 62           /* Numb
52d0: 65 72 20 6f 66 20 74 68 65 20 72 75 6c 65 20 62  er of the rule b
52e0: 79 20 77 68 69 63 68 20 74 6f 20 72 65 64 75 63  y which to reduc
52f0: 65 20 2a 2f 0a 29 7b 0a 20 20 69 6e 74 20 79 79  e */.){.  int yy
5300: 67 6f 74 6f 3b 20 20 20 20 20 20 20 20 20 20 20  goto;           
5310: 20 20 20 20 20 20 20 20 20 20 2f 2a 20 54 68 65            /* The
5320: 20 6e 65 78 74 20 73 74 61 74 65 20 2a 2f 0a 20   next state */. 
5330: 20 69 6e 74 20 79 79 61 63 74 3b 20 20 20 20 20   int yyact;     
5340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5350: 20 2f 2a 20 54 68 65 20 6e 65 78 74 20 61 63 74   /* The next act
5360: 69 6f 6e 20 2a 2f 0a 20 20 79 79 53 74 61 63 6b  ion */.  yyStack
5370: 45 6e 74 72 79 20 2a 79 79 6d 73 70 3b 20 20 20  Entry *yymsp;   
5380: 20 20 20 20 20 20 20 20 20 2f 2a 20 54 68 65 20           /* The 
5390: 74 6f 70 20 6f 66 20 74 68 65 20 70 61 72 73 65  top of the parse
53a0: 72 27 73 20 73 74 61 63 6b 20 2a 2f 0a 20 20 69  r's stack */.  i
53b0: 6e 74 20 79 79 73 69 7a 65 3b 20 20 20 20 20 20  nt yysize;      
53c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
53d0: 2a 20 41 6d 6f 75 6e 74 20 74 6f 20 70 6f 70 20  * Amount to pop 
53e0: 74 68 65 20 73 74 61 63 6b 20 2a 2f 0a 20 20 50  the stack */.  P
53f0: 61 72 73 65 41 52 47 5f 46 45 54 43 48 3b 0a 20  arseARG_FETCH;. 
5400: 20 79 79 6d 73 70 20 3d 20 26 79 79 70 50 61 72   yymsp = &yypPar
5410: 73 65 72 2d 3e 79 79 73 74 61 63 6b 5b 79 79 70  ser->yystack[yyp
5420: 50 61 72 73 65 72 2d 3e 79 79 69 64 78 5d 3b 0a  Parser->yyidx];.
5430: 23 69 66 6e 64 65 66 20 4e 44 45 42 55 47 0a 20  #ifndef NDEBUG. 
5440: 20 69 66 28 20 79 79 54 72 61 63 65 46 49 4c 45   if( yyTraceFILE
5450: 20 26 26 20 79 79 72 75 6c 65 6e 6f 3e 3d 30 20   && yyruleno>=0 
5460: 0a 20 20 20 20 20 20 20 20 26 26 20 79 79 72 75  .        && yyru
5470: 6c 65 6e 6f 3c 28 69 6e 74 29 28 73 69 7a 65 6f  leno<(int)(sizeo
5480: 66 28 79 79 52 75 6c 65 4e 61 6d 65 29 2f 73 69  f(yyRuleName)/si
5490: 7a 65 6f 66 28 79 79 52 75 6c 65 4e 61 6d 65 5b  zeof(yyRuleName[
54a0: 30 5d 29 29 20 29 7b 0a 20 20 20 20 79 79 73 69  0])) ){.    yysi
54b0: 7a 65 20 3d 20 79 79 52 75 6c 65 49 6e 66 6f 5b  ze = yyRuleInfo[
54c0: 79 79 72 75 6c 65 6e 6f 5d 2e 6e 72 68 73 3b 0a  yyruleno].nrhs;.
54d0: 20 20 20 20 66 70 72 69 6e 74 66 28 79 79 54 72      fprintf(yyTr
54e0: 61 63 65 46 49 4c 45 2c 20 22 25 73 52 65 64 75  aceFILE, "%sRedu
54f0: 63 65 20 5b 25 73 5d 2c 20 67 6f 20 74 6f 20 73  ce [%s], go to s
5500: 74 61 74 65 20 25 64 2e 5c 6e 22 2c 20 79 79 54  tate %d.\n", yyT
5510: 72 61 63 65 50 72 6f 6d 70 74 2c 0a 20 20 20 20  racePrompt,.    
5520: 20 20 79 79 52 75 6c 65 4e 61 6d 65 5b 79 79 72    yyRuleName[yyr
5530: 75 6c 65 6e 6f 5d 2c 20 79 79 6d 73 70 5b 2d 79  uleno], yymsp[-y
5540: 79 73 69 7a 65 5d 2e 73 74 61 74 65 6e 6f 29 3b  ysize].stateno);
5550: 0a 20 20 7d 0a 23 65 6e 64 69 66 20 2f 2a 20 4e  .  }.#endif /* N
5560: 44 45 42 55 47 20 2a 2f 0a 0a 20 20 2f 2a 20 43  DEBUG */..  /* C
5570: 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 73 74  heck that the st
5580: 61 63 6b 20 69 73 20 6c 61 72 67 65 20 65 6e 6f  ack is large eno
5590: 75 67 68 20 74 6f 20 67 72 6f 77 20 62 79 20 61  ugh to grow by a
55a0: 20 73 69 6e 67 6c 65 20 65 6e 74 72 79 0a 20 20   single entry.  
55b0: 2a 2a 20 69 66 20 74 68 65 20 52 48 53 20 6f 66  ** if the RHS of
55c0: 20 74 68 65 20 72 75 6c 65 20 69 73 20 65 6d 70   the rule is emp
55d0: 74 79 2e 20 20 54 68 69 73 20 65 6e 73 75 72 65  ty.  This ensure
55e0: 73 20 74 68 61 74 20 74 68 65 72 65 20 69 73 20  s that there is 
55f0: 72 6f 6f 6d 0a 20 20 2a 2a 20 65 6e 6f 75 67 68  room.  ** enough
5600: 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 20 74 6f   on the stack to
5610: 20 70 75 73 68 20 74 68 65 20 4c 48 53 20 76 61   push the LHS va
5620: 6c 75 65 20 2a 2f 0a 20 20 69 66 28 20 79 79 52  lue */.  if( yyR
5630: 75 6c 65 49 6e 66 6f 5b 79 79 72 75 6c 65 6e 6f  uleInfo[yyruleno
5640: 5d 2e 6e 72 68 73 3d 3d 30 20 29 7b 0a 23 69 66  ].nrhs==0 ){.#if
5650: 64 65 66 20 59 59 54 52 41 43 4b 4d 41 58 53 54  def YYTRACKMAXST
5660: 41 43 4b 44 45 50 54 48 0a 20 20 20 20 69 66 28  ACKDEPTH.    if(
5670: 20 79 79 70 50 61 72 73 65 72 2d 3e 79 79 69 64   yypParser->yyid
5680: 78 3e 79 79 70 50 61 72 73 65 72 2d 3e 79 79 69  x>yypParser->yyi
5690: 64 78 4d 61 78 20 29 7b 0a 20 20 20 20 20 20 79  dxMax ){.      y
56a0: 79 70 50 61 72 73 65 72 2d 3e 79 79 69 64 78 4d  ypParser->yyidxM
56b0: 61 78 20 3d 20 79 79 70 50 61 72 73 65 72 2d 3e  ax = yypParser->
56c0: 79 79 69 64 78 3b 0a 20 20 20 20 7d 0a 23 65 6e  yyidx;.    }.#en
56d0: 64 69 66 0a 23 69 66 20 59 59 53 54 41 43 4b 44  dif.#if YYSTACKD
56e0: 45 50 54 48 3e 30 20 0a 20 20 20 20 69 66 28 20  EPTH>0 .    if( 
56f0: 79 79 70 50 61 72 73 65 72 2d 3e 79 79 69 64 78  yypParser->yyidx
5700: 3e 3d 59 59 53 54 41 43 4b 44 45 50 54 48 20 29  >=YYSTACKDEPTH )
5710: 7b 0a 20 20 20 20 20 20 79 79 53 74 61 63 6b 4f  {.      yyStackO
5720: 76 65 72 66 6c 6f 77 28 79 79 70 50 61 72 73 65  verflow(yypParse
5730: 72 29 3b 0a 20 20 20 20 20 20 72 65 74 75 72 6e  r);.      return
5740: 3b 0a 20 20 20 20 7d 0a 23 65 6c 73 65 0a 20 20  ;.    }.#else.  
5750: 20 20 69 66 28 20 79 79 70 50 61 72 73 65 72 2d    if( yypParser-
5760: 3e 79 79 69 64 78 3e 3d 79 79 70 50 61 72 73 65  >yyidx>=yypParse
5770: 72 2d 3e 79 79 73 74 6b 73 7a 20 29 7b 0a 20 20  r->yystksz ){.  
5780: 20 20 20 20 79 79 47 72 6f 77 53 74 61 63 6b 28      yyGrowStack(
5790: 79 79 70 50 61 72 73 65 72 29 3b 0a 20 20 20 20  yypParser);.    
57a0: 20 20 69 66 28 20 79 79 70 50 61 72 73 65 72 2d    if( yypParser-
57b0: 3e 79 79 69 64 78 3e 3d 79 79 70 50 61 72 73 65  >yyidx>=yypParse
57c0: 72 2d 3e 79 79 73 74 6b 73 7a 20 29 7b 0a 20 20  r->yystksz ){.  
57d0: 20 20 20 20 20 20 79 79 53 74 61 63 6b 4f 76 65        yyStackOve
57e0: 72 66 6c 6f 77 28 79 79 70 50 61 72 73 65 72 29  rflow(yypParser)
57f0: 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e  ;.        return
5800: 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a  ;.      }.    }.
5810: 23 65 6e 64 69 66 0a 20 20 7d 0a 0a 20 20 73 77  #endif.  }..  sw
5820: 69 74 63 68 28 20 79 79 72 75 6c 65 6e 6f 20 29  itch( yyruleno )
5830: 7b 0a 20 20 2f 2a 20 42 65 67 69 6e 6e 69 6e 67  {.  /* Beginning
5840: 20 68 65 72 65 20 61 72 65 20 74 68 65 20 72 65   here are the re
5850: 64 75 63 74 69 6f 6e 20 63 61 73 65 73 2e 20 20  duction cases.  
5860: 41 20 74 79 70 69 63 61 6c 20 65 78 61 6d 70 6c  A typical exampl
5870: 65 0a 20 20 2a 2a 20 66 6f 6c 6c 6f 77 73 3a 0a  e.  ** follows:.
5880: 20 20 2a 2a 20 20 20 63 61 73 65 20 30 3a 0a 20    **   case 0:. 
5890: 20 2a 2a 20 20 23 6c 69 6e 65 20 3c 6c 69 6e 65   **  #line <line
58a0: 6e 6f 3e 20 3c 67 72 61 6d 6d 61 72 66 69 6c 65  no> <grammarfile
58b0: 3e 0a 20 20 2a 2a 20 20 20 20 20 7b 20 2e 2e 2e  >.  **     { ...
58c0: 20 7d 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20   }           // 
58d0: 55 73 65 72 20 73 75 70 70 6c 69 65 64 20 63 6f  User supplied co
58e0: 64 65 0a 20 20 2a 2a 20 20 23 6c 69 6e 65 20 3c  de.  **  #line <
58f0: 6c 69 6e 65 6e 6f 3e 20 3c 74 68 69 73 66 69 6c  lineno> <thisfil
5900: 65 3e 0a 20 20 2a 2a 20 20 20 20 20 62 72 65 61  e>.  **     brea
5910: 6b 3b 0a 20 20 2a 2f 0a 2f 2a 2a 2a 2a 2a 2a 2a  k;.  */./*******
5920: 2a 2a 2a 20 42 65 67 69 6e 20 72 65 64 75 63 65  *** Begin reduce
5930: 20 61 63 74 69 6f 6e 73 20 2a 2a 2a 2a 2a 2a 2a   actions *******
5940: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
5950: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
5960: 2a 2a 2a 2a 2a 2a 2a 2f 0a 25 25 0a 2f 2a 2a 2a  *******/.%%./***
5970: 2a 2a 2a 2a 2a 2a 2a 20 45 6e 64 20 72 65 64 75  ******* End redu
5980: 63 65 20 61 63 74 69 6f 6e 73 20 2a 2a 2a 2a 2a  ce actions *****
5990: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
59a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
59b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 20 20 7d  ***********/.  }
59c0: 3b 0a 20 20 61 73 73 65 72 74 28 20 79 79 72 75  ;.  assert( yyru
59d0: 6c 65 6e 6f 3e 3d 30 20 26 26 20 79 79 72 75 6c  leno>=0 && yyrul
59e0: 65 6e 6f 3c 73 69 7a 65 6f 66 28 79 79 52 75 6c  eno<sizeof(yyRul
59f0: 65 49 6e 66 6f 29 2f 73 69 7a 65 6f 66 28 79 79  eInfo)/sizeof(yy
5a00: 52 75 6c 65 49 6e 66 6f 5b 30 5d 29 20 29 3b 0a  RuleInfo[0]) );.
5a10: 20 20 79 79 67 6f 74 6f 20 3d 20 79 79 52 75 6c    yygoto = yyRul
5a20: 65 49 6e 66 6f 5b 79 79 72 75 6c 65 6e 6f 5d 2e  eInfo[yyruleno].
5a30: 6c 68 73 3b 0a 20 20 79 79 73 69 7a 65 20 3d 20  lhs;.  yysize = 
5a40: 79 79 52 75 6c 65 49 6e 66 6f 5b 79 79 72 75 6c  yyRuleInfo[yyrul
5a50: 65 6e 6f 5d 2e 6e 72 68 73 3b 0a 20 20 79 79 61  eno].nrhs;.  yya
5a60: 63 74 20 3d 20 79 79 5f 66 69 6e 64 5f 72 65 64  ct = yy_find_red
5a70: 75 63 65 5f 61 63 74 69 6f 6e 28 79 79 6d 73 70  uce_action(yymsp
5a80: 5b 2d 79 79 73 69 7a 65 5d 2e 73 74 61 74 65 6e  [-yysize].staten
5a90: 6f 2c 28 59 59 43 4f 44 45 54 59 50 45 29 79 79  o,(YYCODETYPE)yy
5aa0: 67 6f 74 6f 29 3b 0a 20 20 69 66 28 20 79 79 61  goto);.  if( yya
5ab0: 63 74 20 3c 3d 20 59 59 5f 4d 41 58 5f 53 48 49  ct <= YY_MAX_SHI
5ac0: 46 54 52 45 44 55 43 45 20 29 7b 0a 20 20 20 20  FTREDUCE ){.    
5ad0: 69 66 28 20 79 79 61 63 74 3e 59 59 5f 4d 41 58  if( yyact>YY_MAX
5ae0: 5f 53 48 49 46 54 20 29 20 79 79 61 63 74 20 2b  _SHIFT ) yyact +
5af0: 3d 20 59 59 5f 4d 49 4e 5f 52 45 44 55 43 45 20  = YY_MIN_REDUCE 
5b00: 2d 20 59 59 5f 4d 49 4e 5f 53 48 49 46 54 52 45  - YY_MIN_SHIFTRE
5b10: 44 55 43 45 3b 0a 20 20 20 20 79 79 70 50 61 72  DUCE;.    yypPar
5b20: 73 65 72 2d 3e 79 79 69 64 78 20 2d 3d 20 79 79  ser->yyidx -= yy
5b30: 73 69 7a 65 20 2d 20 31 3b 0a 20 20 20 20 79 79  size - 1;.    yy
5b40: 6d 73 70 20 2d 3d 20 79 79 73 69 7a 65 2d 31 3b  msp -= yysize-1;
5b50: 0a 20 20 20 20 79 79 6d 73 70 2d 3e 73 74 61 74  .    yymsp->stat
5b60: 65 6e 6f 20 3d 20 28 59 59 41 43 54 49 4f 4e 54  eno = (YYACTIONT
5b70: 59 50 45 29 79 79 61 63 74 3b 0a 20 20 20 20 79  YPE)yyact;.    y
5b80: 79 6d 73 70 2d 3e 6d 61 6a 6f 72 20 3d 20 28 59  ymsp->major = (Y
5b90: 59 43 4f 44 45 54 59 50 45 29 79 79 67 6f 74 6f  YCODETYPE)yygoto
5ba0: 3b 0a 20 20 20 20 79 79 54 72 61 63 65 53 68 69  ;.    yyTraceShi
5bb0: 66 74 28 79 79 70 50 61 72 73 65 72 2c 20 79 79  ft(yypParser, yy
5bc0: 61 63 74 29 3b 0a 20 20 7d 65 6c 73 65 7b 0a 20  act);.  }else{. 
5bd0: 20 20 20 61 73 73 65 72 74 28 20 79 79 61 63 74     assert( yyact
5be0: 20 3d 3d 20 59 59 5f 41 43 43 45 50 54 5f 41 43   == YY_ACCEPT_AC
5bf0: 54 49 4f 4e 20 29 3b 0a 20 20 20 20 79 79 70 50  TION );.    yypP
5c00: 61 72 73 65 72 2d 3e 79 79 69 64 78 20 2d 3d 20  arser->yyidx -= 
5c10: 79 79 73 69 7a 65 3b 0a 20 20 20 20 79 79 5f 61  yysize;.    yy_a
5c20: 63 63 65 70 74 28 79 79 70 50 61 72 73 65 72 29  ccept(yypParser)
5c30: 3b 0a 20 20 7d 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 54  ;.  }.}../*.** T
5c40: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64  he following cod
5c50: 65 20 65 78 65 63 75 74 65 73 20 77 68 65 6e 20  e executes when 
5c60: 74 68 65 20 70 61 72 73 65 20 66 61 69 6c 73 0a  the parse fails.
5c70: 2a 2f 0a 23 69 66 6e 64 65 66 20 59 59 4e 4f 45  */.#ifndef YYNOE
5c80: 52 52 4f 52 52 45 43 4f 56 45 52 59 0a 73 74 61  RRORRECOVERY.sta
5c90: 74 69 63 20 76 6f 69 64 20 79 79 5f 70 61 72 73  tic void yy_pars
5ca0: 65 5f 66 61 69 6c 65 64 28 0a 20 20 79 79 50 61  e_failed(.  yyPa
5cb0: 72 73 65 72 20 2a 79 79 70 50 61 72 73 65 72 20  rser *yypParser 
5cc0: 20 20 20 20 20 20 20 20 20 20 2f 2a 20 54 68 65            /* The
5cd0: 20 70 61 72 73 65 72 20 2a 2f 0a 29 7b 0a 20 20   parser */.){.  
5ce0: 50 61 72 73 65 41 52 47 5f 46 45 54 43 48 3b 0a  ParseARG_FETCH;.
5cf0: 23 69 66 6e 64 65 66 20 4e 44 45 42 55 47 0a 20  #ifndef NDEBUG. 
5d00: 20 69 66 28 20 79 79 54 72 61 63 65 46 49 4c 45   if( yyTraceFILE
5d10: 20 29 7b 0a 20 20 20 20 66 70 72 69 6e 74 66 28   ){.    fprintf(
5d20: 79 79 54 72 61 63 65 46 49 4c 45 2c 22 25 73 46  yyTraceFILE,"%sF
5d30: 61 69 6c 21 5c 6e 22 2c 79 79 54 72 61 63 65 50  ail!\n",yyTraceP
5d40: 72 6f 6d 70 74 29 3b 0a 20 20 7d 0a 23 65 6e 64  rompt);.  }.#end
5d50: 69 66 0a 20 20 77 68 69 6c 65 28 20 79 79 70 50  if.  while( yypP
5d60: 61 72 73 65 72 2d 3e 79 79 69 64 78 3e 3d 30 20  arser->yyidx>=0 
5d70: 29 20 79 79 5f 70 6f 70 5f 70 61 72 73 65 72 5f  ) yy_pop_parser_
5d80: 73 74 61 63 6b 28 79 79 70 50 61 72 73 65 72 29  stack(yypParser)
5d90: 3b 0a 20 20 2f 2a 20 48 65 72 65 20 63 6f 64 65  ;.  /* Here code
5da0: 20 69 73 20 69 6e 73 65 72 74 65 64 20 77 68 69   is inserted whi
5db0: 63 68 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75  ch will be execu
5dc0: 74 65 64 20 77 68 65 6e 65 76 65 72 20 74 68 65  ted whenever the
5dd0: 0a 20 20 2a 2a 20 70 61 72 73 65 72 20 66 61 69  .  ** parser fai
5de0: 6c 73 20 2a 2f 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a  ls */./*********
5df0: 2a 2a 2a 20 42 65 67 69 6e 20 25 70 61 72 73 65  *** Begin %parse
5e00: 5f 66 61 69 6c 75 72 65 20 63 6f 64 65 20 2a 2a  _failure code **
5e10: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
5e20: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
5e30: 2a 2a 2a 2a 2a 2f 0a 25 25 0a 2f 2a 2a 2a 2a 2a  *****/.%%./*****
5e40: 2a 2a 2a 2a 2a 2a 2a 20 45 6e 64 20 25 70 61 72  ******* End %par
5e50: 73 65 5f 66 61 69 6c 75 72 65 20 63 6f 64 65 20  se_failure code 
5e60: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
5e70: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
5e80: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 20 20 50 61 72  *********/.  Par
5e90: 73 65 41 52 47 5f 53 54 4f 52 45 3b 20 2f 2a 20  seARG_STORE; /* 
5ea0: 53 75 70 70 72 65 73 73 20 77 61 72 6e 69 6e 67  Suppress warning
5eb0: 20 61 62 6f 75 74 20 75 6e 75 73 65 64 20 25 65   about unused %e
5ec0: 78 74 72 61 5f 61 72 67 75 6d 65 6e 74 20 76 61  xtra_argument va
5ed0: 72 69 61 62 6c 65 20 2a 2f 0a 7d 0a 23 65 6e 64  riable */.}.#end
5ee0: 69 66 20 2f 2a 20 59 59 4e 4f 45 52 52 4f 52 52  if /* YYNOERRORR
5ef0: 45 43 4f 56 45 52 59 20 2a 2f 0a 0a 2f 2a 0a 2a  ECOVERY */../*.*
5f00: 2a 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  * The following 
5f10: 63 6f 64 65 20 65 78 65 63 75 74 65 73 20 77 68  code executes wh
5f20: 65 6e 20 61 20 73 79 6e 74 61 78 20 65 72 72 6f  en a syntax erro
5f30: 72 20 66 69 72 73 74 20 6f 63 63 75 72 73 2e 0a  r first occurs..
5f40: 2a 2f 0a 73 74 61 74 69 63 20 76 6f 69 64 20 79  */.static void y
5f50: 79 5f 73 79 6e 74 61 78 5f 65 72 72 6f 72 28 0a  y_syntax_error(.
5f60: 20 20 79 79 50 61 72 73 65 72 20 2a 79 79 70 50    yyParser *yypP
5f70: 61 72 73 65 72 2c 20 20 20 20 20 20 20 20 20 20  arser,          
5f80: 20 2f 2a 20 54 68 65 20 70 61 72 73 65 72 20 2a   /* The parser *
5f90: 2f 0a 20 20 69 6e 74 20 79 79 6d 61 6a 6f 72 2c  /.  int yymajor,
5fa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5fb0: 20 20 20 2f 2a 20 54 68 65 20 6d 61 6a 6f 72 20     /* The major 
5fc0: 74 79 70 65 20 6f 66 20 74 68 65 20 65 72 72 6f  type of the erro
5fd0: 72 20 74 6f 6b 65 6e 20 2a 2f 0a 20 20 50 61 72  r token */.  Par
5fe0: 73 65 54 4f 4b 45 4e 54 59 50 45 20 79 79 6d 69  seTOKENTYPE yymi
5ff0: 6e 6f 72 20 20 20 20 20 20 20 20 20 2f 2a 20 54  nor         /* T
6000: 68 65 20 6d 69 6e 6f 72 20 74 79 70 65 20 6f 66  he minor type of
6010: 20 74 68 65 20 65 72 72 6f 72 20 74 6f 6b 65 6e   the error token
6020: 20 2a 2f 0a 29 7b 0a 20 20 50 61 72 73 65 41 52   */.){.  ParseAR
6030: 47 5f 46 45 54 43 48 3b 0a 23 64 65 66 69 6e 65  G_FETCH;.#define
6040: 20 54 4f 4b 45 4e 20 79 79 6d 69 6e 6f 72 0a 2f   TOKEN yyminor./
6050: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 42 65 67  ************ Beg
6060: 69 6e 20 25 73 79 6e 74 61 78 5f 65 72 72 6f 72  in %syntax_error
6070: 20 63 6f 64 65 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   code **********
6080: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6090: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a  **************/.
60a0: 25 25 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  %%./************
60b0: 20 45 6e 64 20 25 73 79 6e 74 61 78 5f 65 72 72   End %syntax_err
60c0: 6f 72 20 63 6f 64 65 20 2a 2a 2a 2a 2a 2a 2a 2a  or code ********
60d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
60e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
60f0: 2a 2a 2f 0a 20 20 50 61 72 73 65 41 52 47 5f 53  **/.  ParseARG_S
6100: 54 4f 52 45 3b 20 2f 2a 20 53 75 70 70 72 65 73  TORE; /* Suppres
6110: 73 20 77 61 72 6e 69 6e 67 20 61 62 6f 75 74 20  s warning about 
6120: 75 6e 75 73 65 64 20 25 65 78 74 72 61 5f 61 72  unused %extra_ar
6130: 67 75 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20  gument variable 
6140: 2a 2f 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 54 68 65 20  */.}../*.** The 
6150: 66 6f 6c 6c 6f 77 69 6e 67 20 69 73 20 65 78 65  following is exe
6160: 63 75 74 65 64 20 77 68 65 6e 20 74 68 65 20 70  cuted when the p
6170: 61 72 73 65 72 20 61 63 63 65 70 74 73 0a 2a 2f  arser accepts.*/
6180: 0a 73 74 61 74 69 63 20 76 6f 69 64 20 79 79 5f  .static void yy_
6190: 61 63 63 65 70 74 28 0a 20 20 79 79 50 61 72 73  accept(.  yyPars
61a0: 65 72 20 2a 79 79 70 50 61 72 73 65 72 20 20 20  er *yypParser   
61b0: 20 20 20 20 20 20 20 20 2f 2a 20 54 68 65 20 70          /* The p
61c0: 61 72 73 65 72 20 2a 2f 0a 29 7b 0a 20 20 50 61  arser */.){.  Pa
61d0: 72 73 65 41 52 47 5f 46 45 54 43 48 3b 0a 23 69  rseARG_FETCH;.#i
61e0: 66 6e 64 65 66 20 4e 44 45 42 55 47 0a 20 20 69  fndef NDEBUG.  i
61f0: 66 28 20 79 79 54 72 61 63 65 46 49 4c 45 20 29  f( yyTraceFILE )
6200: 7b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 79 79  {.    fprintf(yy
6210: 54 72 61 63 65 46 49 4c 45 2c 22 25 73 41 63 63  TraceFILE,"%sAcc
6220: 65 70 74 21 5c 6e 22 2c 79 79 54 72 61 63 65 50  ept!\n",yyTraceP
6230: 72 6f 6d 70 74 29 3b 0a 20 20 7d 0a 23 65 6e 64  rompt);.  }.#end
6240: 69 66 0a 20 20 77 68 69 6c 65 28 20 79 79 70 50  if.  while( yypP
6250: 61 72 73 65 72 2d 3e 79 79 69 64 78 3e 3d 30 20  arser->yyidx>=0 
6260: 29 20 79 79 5f 70 6f 70 5f 70 61 72 73 65 72 5f  ) yy_pop_parser_
6270: 73 74 61 63 6b 28 79 79 70 50 61 72 73 65 72 29  stack(yypParser)
6280: 3b 0a 20 20 2f 2a 20 48 65 72 65 20 63 6f 64 65  ;.  /* Here code
6290: 20 69 73 20 69 6e 73 65 72 74 65 64 20 77 68 69   is inserted whi
62a0: 63 68 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75  ch will be execu
62b0: 74 65 64 20 77 68 65 6e 65 76 65 72 20 74 68 65  ted whenever the
62c0: 0a 20 20 2a 2a 20 70 61 72 73 65 72 20 61 63 63  .  ** parser acc
62d0: 65 70 74 73 20 2a 2f 0a 2f 2a 2a 2a 2a 2a 2a 2a  epts */./*******
62e0: 2a 2a 2a 2a 20 42 65 67 69 6e 20 25 70 61 72 73  **** Begin %pars
62f0: 65 5f 61 63 63 65 70 74 20 63 6f 64 65 20 2a 2a  e_accept code **
6300: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6310: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6320: 2a 2a 2a 2a 2a 2a 2a 2f 0a 25 25 0a 2f 2a 2a 2a  *******/.%%./***
6330: 2a 2a 2a 2a 2a 2a 2a 2a 20 45 6e 64 20 25 70 61  ******** End %pa
6340: 72 73 65 5f 61 63 63 65 70 74 20 63 6f 64 65 20  rse_accept code 
6350: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6360: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6370: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 20 20 50  ***********/.  P
6380: 61 72 73 65 41 52 47 5f 53 54 4f 52 45 3b 20 2f  arseARG_STORE; /
6390: 2a 20 53 75 70 70 72 65 73 73 20 77 61 72 6e 69  * Suppress warni
63a0: 6e 67 20 61 62 6f 75 74 20 75 6e 75 73 65 64 20  ng about unused 
63b0: 25 65 78 74 72 61 5f 61 72 67 75 6d 65 6e 74 20  %extra_argument 
63c0: 76 61 72 69 61 62 6c 65 20 2a 2f 0a 7d 0a 0a 2f  variable */.}../
63d0: 2a 20 54 68 65 20 6d 61 69 6e 20 70 61 72 73 65  * The main parse
63e0: 72 20 70 72 6f 67 72 61 6d 2e 0a 2a 2a 20 54 68  r program..** Th
63f0: 65 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74  e first argument
6400: 20 69 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f   is a pointer to
6410: 20 61 20 73 74 72 75 63 74 75 72 65 20 6f 62 74   a structure obt
6420: 61 69 6e 65 64 20 66 72 6f 6d 0a 2a 2a 20 22 50  ained from.** "P
6430: 61 72 73 65 41 6c 6c 6f 63 22 20 77 68 69 63 68  arseAlloc" which
6440: 20 64 65 73 63 72 69 62 65 73 20 74 68 65 20 63   describes the c
6450: 75 72 72 65 6e 74 20 73 74 61 74 65 20 6f 66 20  urrent state of 
6460: 74 68 65 20 70 61 72 73 65 72 2e 0a 2a 2a 20 54  the parser..** T
6470: 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65  he second argume
6480: 6e 74 20 69 73 20 74 68 65 20 6d 61 6a 6f 72 20  nt is the major 
6490: 74 6f 6b 65 6e 20 6e 75 6d 62 65 72 2e 20 20 54  token number.  T
64a0: 68 65 20 74 68 69 72 64 20 69 73 0a 2a 2a 20 74  he third is.** t
64b0: 68 65 20 6d 69 6e 6f 72 20 74 6f 6b 65 6e 2e 20  he minor token. 
64c0: 20 54 68 65 20 66 6f 75 72 74 68 20 6f 70 74 69   The fourth opti
64d0: 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 69 73  onal argument is
64e0: 20 77 68 61 74 65 76 65 72 20 74 68 65 0a 2a 2a   whatever the.**
64f0: 20 75 73 65 72 20 77 61 6e 74 73 20 28 61 6e 64   user wants (and
6500: 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 74 68   specified in th
6510: 65 20 67 72 61 6d 6d 61 72 29 20 61 6e 64 20 69  e grammar) and i
6520: 73 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 0a  s available for.
6530: 2a 2a 20 75 73 65 20 62 79 20 74 68 65 20 61 63  ** use by the ac
6540: 74 69 6f 6e 20 72 6f 75 74 69 6e 65 73 2e 0a 2a  tion routines..*
6550: 2a 0a 2a 2a 20 49 6e 70 75 74 73 3a 0a 2a 2a 20  *.** Inputs:.** 
6560: 3c 75 6c 3e 0a 2a 2a 20 3c 6c 69 3e 20 41 20 70  <ul>.** <li> A p
6570: 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 70 61  ointer to the pa
6580: 72 73 65 72 20 28 61 6e 20 6f 70 61 71 75 65 20  rser (an opaque 
6590: 73 74 72 75 63 74 75 72 65 2e 29 0a 2a 2a 20 3c  structure.).** <
65a0: 6c 69 3e 20 54 68 65 20 6d 61 6a 6f 72 20 74 6f  li> The major to
65b0: 6b 65 6e 20 6e 75 6d 62 65 72 2e 0a 2a 2a 20 3c  ken number..** <
65c0: 6c 69 3e 20 54 68 65 20 6d 69 6e 6f 72 20 74 6f  li> The minor to
65d0: 6b 65 6e 20 6e 75 6d 62 65 72 2e 0a 2a 2a 20 3c  ken number..** <
65e0: 6c 69 3e 20 41 6e 20 6f 70 74 69 6f 6e 20 61 72  li> An option ar
65f0: 67 75 6d 65 6e 74 20 6f 66 20 61 20 67 72 61 6d  gument of a gram
6600: 6d 61 72 2d 73 70 65 63 69 66 69 65 64 20 74 79  mar-specified ty
6610: 70 65 2e 0a 2a 2a 20 3c 2f 75 6c 3e 0a 2a 2a 0a  pe..** </ul>.**.
6620: 2a 2a 20 4f 75 74 70 75 74 73 3a 0a 2a 2a 20 4e  ** Outputs:.** N
6630: 6f 6e 65 2e 0a 2a 2f 0a 76 6f 69 64 20 50 61 72  one..*/.void Par
6640: 73 65 28 0a 20 20 76 6f 69 64 20 2a 79 79 70 2c  se(.  void *yyp,
6650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6660: 20 20 20 2f 2a 20 54 68 65 20 70 61 72 73 65 72     /* The parser
6670: 20 2a 2f 0a 20 20 69 6e 74 20 79 79 6d 61 6a 6f   */.  int yymajo
6680: 72 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20  r,              
6690: 20 20 20 2f 2a 20 54 68 65 20 6d 61 6a 6f 72 20     /* The major 
66a0: 74 6f 6b 65 6e 20 63 6f 64 65 20 6e 75 6d 62 65  token code numbe
66b0: 72 20 2a 2f 0a 20 20 50 61 72 73 65 54 4f 4b 45  r */.  ParseTOKE
66c0: 4e 54 59 50 45 20 79 79 6d 69 6e 6f 72 20 20 20  NTYPE yyminor   
66d0: 20 20 20 20 2f 2a 20 54 68 65 20 76 61 6c 75 65      /* The value
66e0: 20 66 6f 72 20 74 68 65 20 74 6f 6b 65 6e 20 2a   for the token *
66f0: 2f 0a 20 20 50 61 72 73 65 41 52 47 5f 50 44 45  /.  ParseARG_PDE
6700: 43 4c 20 20 20 20 20 20 20 20 20 20 20 20 20 20  CL              
6710: 20 2f 2a 20 4f 70 74 69 6f 6e 61 6c 20 25 65 78   /* Optional %ex
6720: 74 72 61 5f 61 72 67 75 6d 65 6e 74 20 70 61 72  tra_argument par
6730: 61 6d 65 74 65 72 20 2a 2f 0a 29 7b 0a 20 20 59  ameter */.){.  Y
6740: 59 4d 49 4e 4f 52 54 59 50 45 20 79 79 6d 69 6e  YMINORTYPE yymin
6750: 6f 72 75 6e 69 6f 6e 3b 0a 20 20 69 6e 74 20 79  orunion;.  int y
6760: 79 61 63 74 3b 20 20 20 20 20 20 20 20 20 20 20  yact;           
6770: 20 2f 2a 20 54 68 65 20 70 61 72 73 65 72 20 61   /* The parser a
6780: 63 74 69 6f 6e 2e 20 2a 2f 0a 23 69 66 20 21 64  ction. */.#if !d
6790: 65 66 69 6e 65 64 28 59 59 45 52 52 4f 52 53 59  efined(YYERRORSY
67a0: 4d 42 4f 4c 29 20 26 26 20 21 64 65 66 69 6e 65  MBOL) && !define
67b0: 64 28 59 59 4e 4f 45 52 52 4f 52 52 45 43 4f 56  d(YYNOERRORRECOV
67c0: 45 52 59 29 0a 20 20 69 6e 74 20 79 79 65 6e 64  ERY).  int yyend
67d0: 6f 66 69 6e 70 75 74 3b 20 20 20 20 20 2f 2a 20  ofinput;     /* 
67e0: 54 72 75 65 20 69 66 20 77 65 20 61 72 65 20 61  True if we are a
67f0: 74 20 74 68 65 20 65 6e 64 20 6f 66 20 69 6e 70  t the end of inp
6800: 75 74 20 2a 2f 0a 23 65 6e 64 69 66 0a 23 69 66  ut */.#endif.#if
6810: 64 65 66 20 59 59 45 52 52 4f 52 53 59 4d 42 4f  def YYERRORSYMBO
6820: 4c 0a 20 20 69 6e 74 20 79 79 65 72 72 6f 72 68  L.  int yyerrorh
6830: 69 74 20 3d 20 30 3b 20 20 20 2f 2a 20 54 72 75  it = 0;   /* Tru
6840: 65 20 69 66 20 79 79 6d 61 6a 6f 72 20 68 61 73  e if yymajor has
6850: 20 69 6e 76 6f 6b 65 64 20 61 6e 20 65 72 72 6f   invoked an erro
6860: 72 20 2a 2f 0a 23 65 6e 64 69 66 0a 20 20 79 79  r */.#endif.  yy
6870: 50 61 72 73 65 72 20 2a 79 79 70 50 61 72 73 65  Parser *yypParse
6880: 72 3b 20 20 2f 2a 20 54 68 65 20 70 61 72 73 65  r;  /* The parse
6890: 72 20 2a 2f 0a 0a 20 20 2f 2a 20 28 72 65 29 69  r */..  /* (re)i
68a0: 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 70 61  nitialize the pa
68b0: 72 73 65 72 2c 20 69 66 20 6e 65 63 65 73 73 61  rser, if necessa
68c0: 72 79 20 2a 2f 0a 20 20 79 79 70 50 61 72 73 65  ry */.  yypParse
68d0: 72 20 3d 20 28 79 79 50 61 72 73 65 72 2a 29 79  r = (yyParser*)y
68e0: 79 70 3b 0a 20 20 69 66 28 20 79 79 70 50 61 72  yp;.  if( yypPar
68f0: 73 65 72 2d 3e 79 79 69 64 78 3c 30 20 29 7b 0a  ser->yyidx<0 ){.
6900: 23 69 66 20 59 59 53 54 41 43 4b 44 45 50 54 48  #if YYSTACKDEPTH
6910: 3c 3d 30 0a 20 20 20 20 69 66 28 20 79 79 70 50  <=0.    if( yypP
6920: 61 72 73 65 72 2d 3e 79 79 73 74 6b 73 7a 20 3c  arser->yystksz <
6930: 3d 30 20 29 7b 0a 20 20 20 20 20 20 79 79 53 74  =0 ){.      yySt
6940: 61 63 6b 4f 76 65 72 66 6c 6f 77 28 79 79 70 50  ackOverflow(yypP
6950: 61 72 73 65 72 29 3b 0a 20 20 20 20 20 20 72 65  arser);.      re
6960: 74 75 72 6e 3b 0a 20 20 20 20 7d 0a 23 65 6e 64  turn;.    }.#end
6970: 69 66 0a 20 20 20 20 79 79 70 50 61 72 73 65 72  if.    yypParser
6980: 2d 3e 79 79 69 64 78 20 3d 20 30 3b 0a 23 69 66  ->yyidx = 0;.#if
6990: 6e 64 65 66 20 59 59 4e 4f 45 52 52 4f 52 52 45  ndef YYNOERRORRE
69a0: 43 4f 56 45 52 59 0a 20 20 20 20 79 79 70 50 61  COVERY.    yypPa
69b0: 72 73 65 72 2d 3e 79 79 65 72 72 63 6e 74 20 3d  rser->yyerrcnt =
69c0: 20 2d 31 3b 0a 23 65 6e 64 69 66 0a 20 20 20 20   -1;.#endif.    
69d0: 79 79 70 50 61 72 73 65 72 2d 3e 79 79 73 74 61  yypParser->yysta
69e0: 63 6b 5b 30 5d 2e 73 74 61 74 65 6e 6f 20 3d 20  ck[0].stateno = 
69f0: 30 3b 0a 20 20 20 20 79 79 70 50 61 72 73 65 72  0;.    yypParser
6a00: 2d 3e 79 79 73 74 61 63 6b 5b 30 5d 2e 6d 61 6a  ->yystack[0].maj
6a10: 6f 72 20 3d 20 30 3b 0a 23 69 66 6e 64 65 66 20  or = 0;.#ifndef 
6a20: 4e 44 45 42 55 47 0a 20 20 20 20 69 66 28 20 79  NDEBUG.    if( y
6a30: 79 54 72 61 63 65 46 49 4c 45 20 29 7b 0a 20 20  yTraceFILE ){.  
6a40: 20 20 20 20 66 70 72 69 6e 74 66 28 79 79 54 72      fprintf(yyTr
6a50: 61 63 65 46 49 4c 45 2c 22 25 73 49 6e 69 74 69  aceFILE,"%sIniti
6a60: 61 6c 69 7a 65 2e 20 45 6d 70 74 79 20 73 74 61  alize. Empty sta
6a70: 63 6b 2e 20 53 74 61 74 65 20 30 5c 6e 22 2c 0a  ck. State 0\n",.
6a80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 79 79                yy
6a90: 54 72 61 63 65 50 72 6f 6d 70 74 29 3b 0a 20 20  TracePrompt);.  
6aa0: 20 20 7d 0a 23 65 6e 64 69 66 0a 20 20 7d 0a 23    }.#endif.  }.#
6ab0: 69 66 20 21 64 65 66 69 6e 65 64 28 59 59 45 52  if !defined(YYER
6ac0: 52 4f 52 53 59 4d 42 4f 4c 29 20 26 26 20 21 64  RORSYMBOL) && !d
6ad0: 65 66 69 6e 65 64 28 59 59 4e 4f 45 52 52 4f 52  efined(YYNOERROR
6ae0: 52 45 43 4f 56 45 52 59 29 0a 20 20 79 79 65 6e  RECOVERY).  yyen
6af0: 64 6f 66 69 6e 70 75 74 20 3d 20 28 79 79 6d 61  dofinput = (yyma
6b00: 6a 6f 72 3d 3d 30 29 3b 0a 23 65 6e 64 69 66 0a  jor==0);.#endif.
6b10: 20 20 50 61 72 73 65 41 52 47 5f 53 54 4f 52 45    ParseARG_STORE
6b20: 3b 0a 0a 23 69 66 6e 64 65 66 20 4e 44 45 42 55  ;..#ifndef NDEBU
6b30: 47 0a 20 20 69 66 28 20 79 79 54 72 61 63 65 46  G.  if( yyTraceF
6b40: 49 4c 45 20 29 7b 0a 20 20 20 20 66 70 72 69 6e  ILE ){.    fprin
6b50: 74 66 28 79 79 54 72 61 63 65 46 49 4c 45 2c 22  tf(yyTraceFILE,"
6b60: 25 73 49 6e 70 75 74 20 27 25 73 27 5c 6e 22 2c  %sInput '%s'\n",
6b70: 79 79 54 72 61 63 65 50 72 6f 6d 70 74 2c 79 79  yyTracePrompt,yy
6b80: 54 6f 6b 65 6e 4e 61 6d 65 5b 79 79 6d 61 6a 6f  TokenName[yymajo
6b90: 72 5d 29 3b 0a 20 20 7d 0a 23 65 6e 64 69 66 0a  r]);.  }.#endif.
6ba0: 0a 20 20 64 6f 7b 0a 20 20 20 20 79 79 61 63 74  .  do{.    yyact
6bb0: 20 3d 20 79 79 5f 66 69 6e 64 5f 73 68 69 66 74   = yy_find_shift
6bc0: 5f 61 63 74 69 6f 6e 28 79 79 70 50 61 72 73 65  _action(yypParse
6bd0: 72 2c 28 59 59 43 4f 44 45 54 59 50 45 29 79 79  r,(YYCODETYPE)yy
6be0: 6d 61 6a 6f 72 29 3b 0a 20 20 20 20 69 66 28 20  major);.    if( 
6bf0: 79 79 61 63 74 20 3c 3d 20 59 59 5f 4d 41 58 5f  yyact <= YY_MAX_
6c00: 53 48 49 46 54 52 45 44 55 43 45 20 29 7b 0a 20  SHIFTREDUCE ){. 
6c10: 20 20 20 20 20 69 66 28 20 79 79 61 63 74 20 3e       if( yyact >
6c20: 20 59 59 5f 4d 41 58 5f 53 48 49 46 54 20 29 20   YY_MAX_SHIFT ) 
6c30: 79 79 61 63 74 20 2b 3d 20 59 59 5f 4d 49 4e 5f  yyact += YY_MIN_
6c40: 52 45 44 55 43 45 20 2d 20 59 59 5f 4d 49 4e 5f  REDUCE - YY_MIN_
6c50: 53 48 49 46 54 52 45 44 55 43 45 3b 0a 20 20 20  SHIFTREDUCE;.   
6c60: 20 20 20 79 79 5f 73 68 69 66 74 28 79 79 70 50     yy_shift(yypP
6c70: 61 72 73 65 72 2c 79 79 61 63 74 2c 79 79 6d 61  arser,yyact,yyma
6c80: 6a 6f 72 2c 79 79 6d 69 6e 6f 72 29 3b 0a 23 69  jor,yyminor);.#i
6c90: 66 6e 64 65 66 20 59 59 4e 4f 45 52 52 4f 52 52  fndef YYNOERRORR
6ca0: 45 43 4f 56 45 52 59 0a 20 20 20 20 20 20 79 79  ECOVERY.      yy
6cb0: 70 50 61 72 73 65 72 2d 3e 79 79 65 72 72 63 6e  pParser->yyerrcn
6cc0: 74 2d 2d 3b 0a 23 65 6e 64 69 66 0a 20 20 20 20  t--;.#endif.    
6cd0: 20 20 79 79 6d 61 6a 6f 72 20 3d 20 59 59 4e 4f    yymajor = YYNO
6ce0: 43 4f 44 45 3b 0a 20 20 20 20 7d 65 6c 73 65 20  CODE;.    }else 
6cf0: 69 66 28 20 79 79 61 63 74 20 3c 3d 20 59 59 5f  if( yyact <= YY_
6d00: 4d 41 58 5f 52 45 44 55 43 45 20 29 7b 0a 20 20  MAX_REDUCE ){.  
6d10: 20 20 20 20 79 79 5f 72 65 64 75 63 65 28 79 79      yy_reduce(yy
6d20: 70 50 61 72 73 65 72 2c 79 79 61 63 74 2d 59 59  pParser,yyact-YY
6d30: 5f 4d 49 4e 5f 52 45 44 55 43 45 29 3b 0a 20 20  _MIN_REDUCE);.  
6d40: 20 20 7d 65 6c 73 65 7b 0a 20 20 20 20 20 20 61    }else{.      a
6d50: 73 73 65 72 74 28 20 79 79 61 63 74 20 3d 3d 20  ssert( yyact == 
6d60: 59 59 5f 45 52 52 4f 52 5f 41 43 54 49 4f 4e 20  YY_ERROR_ACTION 
6d70: 29 3b 0a 20 20 20 20 20 20 79 79 6d 69 6e 6f 72  );.      yyminor
6d80: 75 6e 69 6f 6e 2e 79 79 30 20 3d 20 79 79 6d 69  union.yy0 = yymi
6d90: 6e 6f 72 3b 0a 23 69 66 64 65 66 20 59 59 45 52  nor;.#ifdef YYER
6da0: 52 4f 52 53 59 4d 42 4f 4c 0a 20 20 20 20 20 20  RORSYMBOL.      
6db0: 69 6e 74 20 79 79 6d 78 3b 0a 23 65 6e 64 69 66  int yymx;.#endif
6dc0: 0a 23 69 66 6e 64 65 66 20 4e 44 45 42 55 47 0a  .#ifndef NDEBUG.
6dd0: 20 20 20 20 20 20 69 66 28 20 79 79 54 72 61 63        if( yyTrac
6de0: 65 46 49 4c 45 20 29 7b 0a 20 20 20 20 20 20 20  eFILE ){.       
6df0: 20 66 70 72 69 6e 74 66 28 79 79 54 72 61 63 65   fprintf(yyTrace
6e00: 46 49 4c 45 2c 22 25 73 53 79 6e 74 61 78 20 45  FILE,"%sSyntax E
6e10: 72 72 6f 72 21 5c 6e 22 2c 79 79 54 72 61 63 65  rror!\n",yyTrace
6e20: 50 72 6f 6d 70 74 29 3b 0a 20 20 20 20 20 20 7d  Prompt);.      }
6e30: 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20 59  .#endif.#ifdef Y
6e40: 59 45 52 52 4f 52 53 59 4d 42 4f 4c 0a 20 20 20  YERRORSYMBOL.   
6e50: 20 20 20 2f 2a 20 41 20 73 79 6e 74 61 78 20 65     /* A syntax e
6e60: 72 72 6f 72 20 68 61 73 20 6f 63 63 75 72 72 65  rror has occurre
6e70: 64 2e 0a 20 20 20 20 20 20 2a 2a 20 54 68 65 20  d..      ** The 
6e80: 72 65 73 70 6f 6e 73 65 20 74 6f 20 61 6e 20 65  response to an e
6e90: 72 72 6f 72 20 64 65 70 65 6e 64 73 20 75 70 6f  rror depends upo
6ea0: 6e 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f 74  n whether or not
6eb0: 20 74 68 65 0a 20 20 20 20 20 20 2a 2a 20 67 72   the.      ** gr
6ec0: 61 6d 6d 61 72 20 64 65 66 69 6e 65 73 20 61 6e  ammar defines an
6ed0: 20 65 72 72 6f 72 20 74 6f 6b 65 6e 20 22 45 52   error token "ER
6ee0: 52 4f 52 22 2e 20 20 0a 20 20 20 20 20 20 2a 2a  ROR".  .      **
6ef0: 0a 20 20 20 20 20 20 2a 2a 20 54 68 69 73 20 69  .      ** This i
6f00: 73 20 77 68 61 74 20 77 65 20 64 6f 20 69 66 20  s what we do if 
6f10: 74 68 65 20 67 72 61 6d 6d 61 72 20 64 6f 65 73  the grammar does
6f20: 20 64 65 66 69 6e 65 20 45 52 52 4f 52 3a 0a 20   define ERROR:. 
6f30: 20 20 20 20 20 2a 2a 0a 20 20 20 20 20 20 2a 2a       **.      **
6f40: 20 20 2a 20 43 61 6c 6c 20 74 68 65 20 25 73 79    * Call the %sy
6f50: 6e 74 61 78 5f 65 72 72 6f 72 20 66 75 6e 63 74  ntax_error funct
6f60: 69 6f 6e 2e 0a 20 20 20 20 20 20 2a 2a 0a 20 20  ion..      **.  
6f70: 20 20 20 20 2a 2a 20 20 2a 20 42 65 67 69 6e 20      **  * Begin 
6f80: 70 6f 70 70 69 6e 67 20 74 68 65 20 73 74 61 63  popping the stac
6f90: 6b 20 75 6e 74 69 6c 20 77 65 20 65 6e 74 65 72  k until we enter
6fa0: 20 61 20 73 74 61 74 65 20 77 68 65 72 65 0a 20   a state where. 
6fb0: 20 20 20 20 20 2a 2a 20 20 20 20 69 74 20 69 73       **    it is
6fc0: 20 6c 65 67 61 6c 20 74 6f 20 73 68 69 66 74 20   legal to shift 
6fd0: 74 68 65 20 65 72 72 6f 72 20 73 79 6d 62 6f 6c  the error symbol
6fe0: 2c 20 74 68 65 6e 20 73 68 69 66 74 0a 20 20 20  , then shift.   
6ff0: 20 20 20 2a 2a 20 20 20 20 74 68 65 20 65 72 72     **    the err
7000: 6f 72 20 73 79 6d 62 6f 6c 2e 0a 20 20 20 20 20  or symbol..     
7010: 20 2a 2a 0a 20 20 20 20 20 20 2a 2a 20 20 2a 20   **.      **  * 
7020: 53 65 74 20 74 68 65 20 65 72 72 6f 72 20 63 6f  Set the error co
7030: 75 6e 74 20 74 6f 20 74 68 72 65 65 2e 0a 20 20  unt to three..  
7040: 20 20 20 20 2a 2a 0a 20 20 20 20 20 20 2a 2a 20      **.      ** 
7050: 20 2a 20 42 65 67 69 6e 20 61 63 63 65 70 74 69   * Begin accepti
7060: 6e 67 20 61 6e 64 20 73 68 69 66 74 69 6e 67 20  ng and shifting 
7070: 6e 65 77 20 74 6f 6b 65 6e 73 2e 20 20 4e 6f 20  new tokens.  No 
7080: 6e 65 77 20 65 72 72 6f 72 0a 20 20 20 20 20 20  new error.      
7090: 2a 2a 20 20 20 20 70 72 6f 63 65 73 73 69 6e 67  **    processing
70a0: 20 77 69 6c 6c 20 6f 63 63 75 72 20 75 6e 74 69   will occur unti
70b0: 6c 20 74 68 72 65 65 20 74 6f 6b 65 6e 73 20 68  l three tokens h
70c0: 61 76 65 20 62 65 65 6e 0a 20 20 20 20 20 20 2a  ave been.      *
70d0: 2a 20 20 20 20 73 68 69 66 74 65 64 20 73 75 63  *    shifted suc
70e0: 63 65 73 73 66 75 6c 6c 79 2e 0a 20 20 20 20 20  cessfully..     
70f0: 20 2a 2a 0a 20 20 20 20 20 20 2a 2f 0a 20 20 20   **.      */.   
7100: 20 20 20 69 66 28 20 79 79 70 50 61 72 73 65 72     if( yypParser
7110: 2d 3e 79 79 65 72 72 63 6e 74 3c 30 20 29 7b 0a  ->yyerrcnt<0 ){.
7120: 20 20 20 20 20 20 20 20 79 79 5f 73 79 6e 74 61          yy_synta
7130: 78 5f 65 72 72 6f 72 28 79 79 70 50 61 72 73 65  x_error(yypParse
7140: 72 2c 79 79 6d 61 6a 6f 72 2c 79 79 6d 69 6e 6f  r,yymajor,yymino
7150: 72 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20  r);.      }.    
7160: 20 20 79 79 6d 78 20 3d 20 79 79 70 50 61 72 73    yymx = yypPars
7170: 65 72 2d 3e 79 79 73 74 61 63 6b 5b 79 79 70 50  er->yystack[yypP
7180: 61 72 73 65 72 2d 3e 79 79 69 64 78 5d 2e 6d 61  arser->yyidx].ma
7190: 6a 6f 72 3b 0a 20 20 20 20 20 20 69 66 28 20 79  jor;.      if( y
71a0: 79 6d 78 3d 3d 59 59 45 52 52 4f 52 53 59 4d 42  ymx==YYERRORSYMB
71b0: 4f 4c 20 7c 7c 20 79 79 65 72 72 6f 72 68 69 74  OL || yyerrorhit
71c0: 20 29 7b 0a 23 69 66 6e 64 65 66 20 4e 44 45 42   ){.#ifndef NDEB
71d0: 55 47 0a 20 20 20 20 20 20 20 20 69 66 28 20 79  UG.        if( y
71e0: 79 54 72 61 63 65 46 49 4c 45 20 29 7b 0a 20 20  yTraceFILE ){.  
71f0: 20 20 20 20 20 20 20 20 66 70 72 69 6e 74 66 28          fprintf(
7200: 79 79 54 72 61 63 65 46 49 4c 45 2c 22 25 73 44  yyTraceFILE,"%sD
7210: 69 73 63 61 72 64 20 69 6e 70 75 74 20 74 6f 6b  iscard input tok
7220: 65 6e 20 25 73 5c 6e 22 2c 0a 20 20 20 20 20 20  en %s\n",.      
7230: 20 20 20 20 20 20 20 79 79 54 72 61 63 65 50 72         yyTracePr
7240: 6f 6d 70 74 2c 79 79 54 6f 6b 65 6e 4e 61 6d 65  ompt,yyTokenName
7250: 5b 79 79 6d 61 6a 6f 72 5d 29 3b 0a 20 20 20 20  [yymajor]);.    
7260: 20 20 20 20 7d 0a 23 65 6e 64 69 66 0a 20 20 20      }.#endif.   
7270: 20 20 20 20 20 79 79 5f 64 65 73 74 72 75 63 74       yy_destruct
7280: 6f 72 28 79 79 70 50 61 72 73 65 72 2c 20 28 59  or(yypParser, (Y
7290: 59 43 4f 44 45 54 59 50 45 29 79 79 6d 61 6a 6f  YCODETYPE)yymajo
72a0: 72 2c 20 26 79 79 6d 69 6e 6f 72 75 6e 69 6f 6e  r, &yyminorunion
72b0: 29 3b 0a 20 20 20 20 20 20 20 20 79 79 6d 61 6a  );.        yymaj
72c0: 6f 72 20 3d 20 59 59 4e 4f 43 4f 44 45 3b 0a 20  or = YYNOCODE;. 
72d0: 20 20 20 20 20 7d 65 6c 73 65 7b 0a 20 20 20 20       }else{.    
72e0: 20 20 20 20 77 68 69 6c 65 28 0a 20 20 20 20 20      while(.     
72f0: 20 20 20 20 20 79 79 70 50 61 72 73 65 72 2d 3e       yypParser->
7300: 79 79 69 64 78 20 3e 3d 20 30 20 26 26 0a 20 20  yyidx >= 0 &&.  
7310: 20 20 20 20 20 20 20 20 79 79 6d 78 20 21 3d 20          yymx != 
7320: 59 59 45 52 52 4f 52 53 59 4d 42 4f 4c 20 26 26  YYERRORSYMBOL &&
7330: 0a 20 20 20 20 20 20 20 20 20 20 28 79 79 61 63  .          (yyac
7340: 74 20 3d 20 79 79 5f 66 69 6e 64 5f 72 65 64 75  t = yy_find_redu
7350: 63 65 5f 61 63 74 69 6f 6e 28 0a 20 20 20 20 20  ce_action(.     
7360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7370: 20 20 20 79 79 70 50 61 72 73 65 72 2d 3e 79 79     yypParser->yy
7380: 73 74 61 63 6b 5b 79 79 70 50 61 72 73 65 72 2d  stack[yypParser-
7390: 3e 79 79 69 64 78 5d 2e 73 74 61 74 65 6e 6f 2c  >yyidx].stateno,
73a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
73b0: 20 20 20 20 20 20 20 20 20 59 59 45 52 52 4f 52           YYERROR
73c0: 53 59 4d 42 4f 4c 29 29 20 3e 3d 20 59 59 5f 4d  SYMBOL)) >= YY_M
73d0: 49 4e 5f 52 45 44 55 43 45 0a 20 20 20 20 20 20  IN_REDUCE.      
73e0: 20 20 29 7b 0a 20 20 20 20 20 20 20 20 20 20 79    ){.          y
73f0: 79 5f 70 6f 70 5f 70 61 72 73 65 72 5f 73 74 61  y_pop_parser_sta
7400: 63 6b 28 79 79 70 50 61 72 73 65 72 29 3b 0a 20  ck(yypParser);. 
7410: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20         }.       
7420: 20 69 66 28 20 79 79 70 50 61 72 73 65 72 2d 3e   if( yypParser->
7430: 79 79 69 64 78 20 3c 20 30 20 7c 7c 20 79 79 6d  yyidx < 0 || yym
7440: 61 6a 6f 72 3d 3d 30 20 29 7b 0a 20 20 20 20 20  ajor==0 ){.     
7450: 20 20 20 20 20 79 79 5f 64 65 73 74 72 75 63 74       yy_destruct
7460: 6f 72 28 79 79 70 50 61 72 73 65 72 2c 28 59 59  or(yypParser,(YY
7470: 43 4f 44 45 54 59 50 45 29 79 79 6d 61 6a 6f 72  CODETYPE)yymajor
7480: 2c 26 79 79 6d 69 6e 6f 72 75 6e 69 6f 6e 29 3b  ,&yyminorunion);
7490: 0a 20 20 20 20 20 20 20 20 20 20 79 79 5f 70 61  .          yy_pa
74a0: 72 73 65 5f 66 61 69 6c 65 64 28 79 79 70 50 61  rse_failed(yypPa
74b0: 72 73 65 72 29 3b 0a 20 20 20 20 20 20 20 20 20  rser);.         
74c0: 20 79 79 6d 61 6a 6f 72 20 3d 20 59 59 4e 4f 43   yymajor = YYNOC
74d0: 4f 44 45 3b 0a 20 20 20 20 20 20 20 20 7d 65 6c  ODE;.        }el
74e0: 73 65 20 69 66 28 20 79 79 6d 78 21 3d 59 59 45  se if( yymx!=YYE
74f0: 52 52 4f 52 53 59 4d 42 4f 4c 20 29 7b 0a 20 20  RRORSYMBOL ){.  
7500: 20 20 20 20 20 20 20 20 79 79 5f 73 68 69 66 74          yy_shift
7510: 28 79 79 70 50 61 72 73 65 72 2c 79 79 61 63 74  (yypParser,yyact
7520: 2c 59 59 45 52 52 4f 52 53 59 4d 42 4f 4c 2c 79  ,YYERRORSYMBOL,y
7530: 79 6d 69 6e 6f 72 29 3b 0a 20 20 20 20 20 20 20  yminor);.       
7540: 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20   }.      }.     
7550: 20 79 79 70 50 61 72 73 65 72 2d 3e 79 79 65 72   yypParser->yyer
7560: 72 63 6e 74 20 3d 20 33 3b 0a 20 20 20 20 20 20  rcnt = 3;.      
7570: 79 79 65 72 72 6f 72 68 69 74 20 3d 20 31 3b 0a  yyerrorhit = 1;.
7580: 23 65 6c 69 66 20 64 65 66 69 6e 65 64 28 59 59  #elif defined(YY
7590: 4e 4f 45 52 52 4f 52 52 45 43 4f 56 45 52 59 29  NOERRORRECOVERY)
75a0: 0a 20 20 20 20 20 20 2f 2a 20 49 66 20 74 68 65  .      /* If the
75b0: 20 59 59 4e 4f 45 52 52 4f 52 52 45 43 4f 56 45   YYNOERRORRECOVE
75c0: 52 59 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69  RY macro is defi
75d0: 6e 65 64 2c 20 74 68 65 6e 20 64 6f 20 6e 6f 74  ned, then do not
75e0: 20 61 74 74 65 6d 70 74 20 74 6f 0a 20 20 20 20   attempt to.    
75f0: 20 20 2a 2a 20 64 6f 20 61 6e 79 20 6b 69 6e 64    ** do any kind
7600: 20 6f 66 20 65 72 72 6f 72 20 72 65 63 6f 76 65   of error recove
7610: 72 79 2e 20 20 49 6e 73 74 65 61 64 2c 20 73 69  ry.  Instead, si
7620: 6d 70 6c 79 20 69 6e 76 6f 6b 65 20 74 68 65 20  mply invoke the 
7630: 73 79 6e 74 61 78 0a 20 20 20 20 20 20 2a 2a 20  syntax.      ** 
7640: 65 72 72 6f 72 20 72 6f 75 74 69 6e 65 20 61 6e  error routine an
7650: 64 20 63 6f 6e 74 69 6e 75 65 20 67 6f 69 6e 67  d continue going
7660: 20 61 73 20 69 66 20 6e 6f 74 68 69 6e 67 20 68   as if nothing h
7670: 61 64 20 68 61 70 70 65 6e 65 64 2e 0a 20 20 20  ad happened..   
7680: 20 20 20 2a 2a 0a 20 20 20 20 20 20 2a 2a 20 41     **.      ** A
7690: 70 70 6c 69 63 61 74 69 6f 6e 73 20 63 61 6e 20  pplications can 
76a0: 73 65 74 20 74 68 69 73 20 6d 61 63 72 6f 20 28  set this macro (
76b0: 66 6f 72 20 65 78 61 6d 70 6c 65 20 69 6e 73 69  for example insi
76c0: 64 65 20 25 69 6e 63 6c 75 64 65 29 20 69 66 0a  de %include) if.
76d0: 20 20 20 20 20 20 2a 2a 20 74 68 65 79 20 69 6e        ** they in
76e0: 74 65 6e 64 20 74 6f 20 61 62 61 6e 64 6f 6e 20  tend to abandon 
76f0: 74 68 65 20 70 61 72 73 65 20 75 70 6f 6e 20 74  the parse upon t
7700: 68 65 20 66 69 72 73 74 20 73 79 6e 74 61 78 20  he first syntax 
7710: 65 72 72 6f 72 20 73 65 65 6e 2e 0a 20 20 20 20  error seen..    
7720: 20 20 2a 2f 0a 20 20 20 20 20 20 79 79 5f 73 79    */.      yy_sy
7730: 6e 74 61 78 5f 65 72 72 6f 72 28 79 79 70 50 61  ntax_error(yypPa
7740: 72 73 65 72 2c 79 79 6d 61 6a 6f 72 2c 20 79 79  rser,yymajor, yy
7750: 6d 69 6e 6f 72 29 3b 0a 20 20 20 20 20 20 79 79  minor);.      yy
7760: 5f 64 65 73 74 72 75 63 74 6f 72 28 79 79 70 50  _destructor(yypP
7770: 61 72 73 65 72 2c 28 59 59 43 4f 44 45 54 59 50  arser,(YYCODETYP
7780: 45 29 79 79 6d 61 6a 6f 72 2c 26 79 79 6d 69 6e  E)yymajor,&yymin
7790: 6f 72 75 6e 69 6f 6e 29 3b 0a 20 20 20 20 20 20  orunion);.      
77a0: 79 79 6d 61 6a 6f 72 20 3d 20 59 59 4e 4f 43 4f  yymajor = YYNOCO
77b0: 44 45 3b 0a 20 20 20 20 20 20 0a 23 65 6c 73 65  DE;.      .#else
77c0: 20 20 2f 2a 20 59 59 45 52 52 4f 52 53 59 4d 42    /* YYERRORSYMB
77d0: 4f 4c 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65  OL is not define
77e0: 64 20 2a 2f 0a 20 20 20 20 20 20 2f 2a 20 54 68  d */.      /* Th
77f0: 69 73 20 69 73 20 77 68 61 74 20 77 65 20 64 6f  is is what we do
7800: 20 69 66 20 74 68 65 20 67 72 61 6d 6d 61 72 20   if the grammar 
7810: 64 6f 65 73 20 6e 6f 74 20 64 65 66 69 6e 65 20  does not define 
7820: 45 52 52 4f 52 3a 0a 20 20 20 20 20 20 2a 2a 0a  ERROR:.      **.
7830: 20 20 20 20 20 20 2a 2a 20 20 2a 20 52 65 70 6f        **  * Repo
7840: 72 74 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73  rt an error mess
7850: 61 67 65 2c 20 61 6e 64 20 74 68 72 6f 77 20 61  age, and throw a
7860: 77 61 79 20 74 68 65 20 69 6e 70 75 74 20 74 6f  way the input to
7870: 6b 65 6e 2e 0a 20 20 20 20 20 20 2a 2a 0a 20 20  ken..      **.  
7880: 20 20 20 20 2a 2a 20 20 2a 20 49 66 20 74 68 65      **  * If the
7890: 20 69 6e 70 75 74 20 74 6f 6b 65 6e 20 69 73 20   input token is 
78a0: 24 2c 20 74 68 65 6e 20 66 61 69 6c 20 74 68 65  $, then fail the
78b0: 20 70 61 72 73 65 2e 0a 20 20 20 20 20 20 2a 2a   parse..      **
78c0: 0a 20 20 20 20 20 20 2a 2a 20 41 73 20 62 65 66  .      ** As bef
78d0: 6f 72 65 2c 20 73 75 62 73 65 71 75 65 6e 74 20  ore, subsequent 
78e0: 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20 61  error messages a
78f0: 72 65 20 73 75 70 70 72 65 73 73 65 64 20 75 6e  re suppressed un
7900: 74 69 6c 0a 20 20 20 20 20 20 2a 2a 20 74 68 72  til.      ** thr
7910: 65 65 20 69 6e 70 75 74 20 74 6f 6b 65 6e 73 20  ee input tokens 
7920: 68 61 76 65 20 62 65 65 6e 20 73 75 63 63 65 73  have been succes
7930: 73 66 75 6c 6c 79 20 73 68 69 66 74 65 64 2e 0a  sfully shifted..
7940: 20 20 20 20 20 20 2a 2f 0a 20 20 20 20 20 20 69        */.      i
7950: 66 28 20 79 79 70 50 61 72 73 65 72 2d 3e 79 79  f( yypParser->yy
7960: 65 72 72 63 6e 74 3c 3d 30 20 29 7b 0a 20 20 20  errcnt<=0 ){.   
7970: 20 20 20 20 20 79 79 5f 73 79 6e 74 61 78 5f 65       yy_syntax_e
7980: 72 72 6f 72 28 79 79 70 50 61 72 73 65 72 2c 79  rror(yypParser,y
7990: 79 6d 61 6a 6f 72 2c 20 79 79 6d 69 6e 6f 72 29  ymajor, yyminor)
79a0: 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20  ;.      }.      
79b0: 79 79 70 50 61 72 73 65 72 2d 3e 79 79 65 72 72  yypParser->yyerr
79c0: 63 6e 74 20 3d 20 33 3b 0a 20 20 20 20 20 20 79  cnt = 3;.      y
79d0: 79 5f 64 65 73 74 72 75 63 74 6f 72 28 79 79 70  y_destructor(yyp
79e0: 50 61 72 73 65 72 2c 28 59 59 43 4f 44 45 54 59  Parser,(YYCODETY
79f0: 50 45 29 79 79 6d 61 6a 6f 72 2c 26 79 79 6d 69  PE)yymajor,&yymi
7a00: 6e 6f 72 75 6e 69 6f 6e 29 3b 0a 20 20 20 20 20  norunion);.     
7a10: 20 69 66 28 20 79 79 65 6e 64 6f 66 69 6e 70 75   if( yyendofinpu
7a20: 74 20 29 7b 0a 20 20 20 20 20 20 20 20 79 79 5f  t ){.        yy_
7a30: 70 61 72 73 65 5f 66 61 69 6c 65 64 28 79 79 70  parse_failed(yyp
7a40: 50 61 72 73 65 72 29 3b 0a 20 20 20 20 20 20 7d  Parser);.      }
7a50: 0a 20 20 20 20 20 20 79 79 6d 61 6a 6f 72 20 3d  .      yymajor =
7a60: 20 59 59 4e 4f 43 4f 44 45 3b 0a 23 65 6e 64 69   YYNOCODE;.#endi
7a70: 66 0a 20 20 20 20 7d 0a 20 20 7d 77 68 69 6c 65  f.    }.  }while
7a80: 28 20 79 79 6d 61 6a 6f 72 21 3d 59 59 4e 4f 43  ( yymajor!=YYNOC
7a90: 4f 44 45 20 26 26 20 79 79 70 50 61 72 73 65 72  ODE && yypParser
7aa0: 2d 3e 79 79 69 64 78 3e 3d 30 20 29 3b 0a 23 69  ->yyidx>=0 );.#i
7ab0: 66 6e 64 65 66 20 4e 44 45 42 55 47 0a 20 20 69  fndef NDEBUG.  i
7ac0: 66 28 20 79 79 54 72 61 63 65 46 49 4c 45 20 29  f( yyTraceFILE )
7ad0: 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20  {.    int i;.   
7ae0: 20 66 70 72 69 6e 74 66 28 79 79 54 72 61 63 65   fprintf(yyTrace
7af0: 46 49 4c 45 2c 22 25 73 52 65 74 75 72 6e 2e 20  FILE,"%sReturn. 
7b00: 53 74 61 63 6b 3d 22 2c 79 79 54 72 61 63 65 50  Stack=",yyTraceP
7b10: 72 6f 6d 70 74 29 3b 0a 20 20 20 20 66 6f 72 28  rompt);.    for(
7b20: 69 3d 31 3b 20 69 3c 3d 79 79 70 50 61 72 73 65  i=1; i<=yypParse
7b30: 72 2d 3e 79 79 69 64 78 3b 20 69 2b 2b 29 0a 20  r->yyidx; i++). 
7b40: 20 20 20 20 20 66 70 72 69 6e 74 66 28 79 79 54       fprintf(yyT
7b50: 72 61 63 65 46 49 4c 45 2c 22 25 63 25 73 22 2c  raceFILE,"%c%s",
7b60: 20 69 3d 3d 31 20 3f 20 27 5b 27 20 3a 20 27 20   i==1 ? '[' : ' 
7b70: 27 2c 20 0a 20 20 20 20 20 20 20 20 20 20 20 20  ', .            
7b80: 20 20 79 79 54 6f 6b 65 6e 4e 61 6d 65 5b 79 79    yyTokenName[yy
7b90: 70 50 61 72 73 65 72 2d 3e 79 79 73 74 61 63 6b  pParser->yystack
7ba0: 5b 69 5d 2e 6d 61 6a 6f 72 5d 29 3b 0a 20 20 20  [i].major]);.   
7bb0: 20 66 70 72 69 6e 74 66 28 79 79 54 72 61 63 65   fprintf(yyTrace
7bc0: 46 49 4c 45 2c 22 5d 5c 6e 22 29 3b 0a 20 20 7d  FILE,"]\n");.  }
7bd0: 0a 23 65 6e 64 69 66 0a 20 20 72 65 74 75 72 6e  .#endif.  return
7be0: 3b 0a 7d 0a                                      ;.}.