head	1.1;
branch	1.1.1;
access;
symbols
	netbsd-11-0-RC5:1.1.1.2
	netbsd-11-0-RC4:1.1.1.2
	byacc-20260126:1.1.1.2
	netbsd-11-0-RC3:1.1.1.2
	netbsd-11-0-RC2:1.1.1.2
	netbsd-11-0-RC1:1.1.1.2
	byacc-20241231:1.1.1.2
	perseant-exfatfs-base-20250801:1.1.1.2
	netbsd-11:1.1.1.2.0.26
	netbsd-11-base:1.1.1.2
	netbsd-10-1-RELEASE:1.1.1.2
	byacc-20240109:1.1.1.2
	perseant-exfatfs-base-20240630:1.1.1.2
	perseant-exfatfs:1.1.1.2.0.24
	perseant-exfatfs-base:1.1.1.2
	netbsd-8-3-RELEASE:1.1.1.2
	netbsd-9-4-RELEASE:1.1.1.2
	netbsd-10-0-RELEASE:1.1.1.2
	netbsd-10-0-RC6:1.1.1.2
	netbsd-10-0-RC5:1.1.1.2
	netbsd-10-0-RC4:1.1.1.2
	netbsd-10-0-RC3:1.1.1.2
	netbsd-10-0-RC2:1.1.1.2
	netbsd-10-0-RC1:1.1.1.2
	netbsd-10:1.1.1.2.0.22
	netbsd-10-base:1.1.1.2
	netbsd-9-3-RELEASE:1.1.1.2
	cjep_sun2x-base1:1.1.1.2
	cjep_sun2x:1.1.1.2.0.20
	cjep_sun2x-base:1.1.1.2
	cjep_staticlib_x-base1:1.1.1.2
	netbsd-9-2-RELEASE:1.1.1.2
	cjep_staticlib_x:1.1.1.2.0.18
	cjep_staticlib_x-base:1.1.1.2
	byacc-20210109:1.1.1.2
	netbsd-9-1-RELEASE:1.1.1.2
	phil-wifi-20200421:1.1.1.2
	phil-wifi-20200411:1.1.1.2
	is-mlppp:1.1.1.2.0.16
	is-mlppp-base:1.1.1.2
	phil-wifi-20200406:1.1.1.2
	netbsd-8-2-RELEASE:1.1.1.2
	netbsd-9-0-RELEASE:1.1.1.2
	netbsd-9-0-RC2:1.1.1.2
	netbsd-9-0-RC1:1.1.1.2
	phil-wifi-20191119:1.1.1.2
	byacc-20190617:1.1.1.2
	netbsd-9:1.1.1.2.0.14
	netbsd-9-base:1.1.1.2
	phil-wifi-20190609:1.1.1.2
	netbsd-8-1-RELEASE:1.1.1.2
	netbsd-8-1-RC1:1.1.1.2
	pgoyette-compat-merge-20190127:1.1.1.2
	pgoyette-compat-20190127:1.1.1.2
	pgoyette-compat-20190118:1.1.1.2
	pgoyette-compat-1226:1.1.1.2
	byacc-20180609:1.1.1.2
	pgoyette-compat-1126:1.1.1.2
	pgoyette-compat-1020:1.1.1.2
	pgoyette-compat-0930:1.1.1.2
	pgoyette-compat-0906:1.1.1.2
	pgoyette-compat-0728:1.1.1.2
	netbsd-8-0-RELEASE:1.1.1.2
	phil-wifi:1.1.1.2.0.12
	phil-wifi-base:1.1.1.2
	pgoyette-compat-0625:1.1.1.2
	netbsd-8-0-RC2:1.1.1.2
	pgoyette-compat-0521:1.1.1.2
	pgoyette-compat-0502:1.1.1.2
	pgoyette-compat-0422:1.1.1.2
	netbsd-8-0-RC1:1.1.1.2
	pgoyette-compat-0415:1.1.1.2
	pgoyette-compat-0407:1.1.1.2
	pgoyette-compat-0330:1.1.1.2
	pgoyette-compat-0322:1.1.1.2
	pgoyette-compat-0315:1.1.1.2
	pgoyette-compat:1.1.1.2.0.10
	pgoyette-compat-base:1.1.1.2
	matt-nb8-mediatek:1.1.1.2.0.8
	matt-nb8-mediatek-base:1.1.1.2
	perseant-stdc-iso10646:1.1.1.2.0.6
	perseant-stdc-iso10646-base:1.1.1.2
	byacc-20170430:1.1.1.2
	netbsd-8:1.1.1.2.0.4
	netbsd-8-base:1.1.1.2
	prg-localcount2-base3:1.1.1.2
	prg-localcount2-base2:1.1.1.2
	prg-localcount2-base1:1.1.1.2
	prg-localcount2:1.1.1.2.0.2
	prg-localcount2-base:1.1.1.2
	pgoyette-localcount-20170426:1.1.1.2
	bouyer-socketcan-base1:1.1.1.2
	pgoyette-localcount-20170320:1.1.1.2
	byacc-20170201:1.1.1.2
	bouyer-socketcan:1.1.1.1.0.4
	bouyer-socketcan-base:1.1.1.1
	pgoyette-localcount-20170107:1.1.1.1
	pgoyette-localcount-20161104:1.1.1.1
	localcount-20160914:1.1.1.1
	pgoyette-localcount-20160806:1.1.1.1
	pgoyette-localcount-20160726:1.1.1.1
	pgoyette-localcount:1.1.1.1.0.2
	pgoyette-localcount-base:1.1.1.1
	byacc-20150711:1.1.1.1
	byacc-20141128:1.1.1.1
	DICKEY:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2015.01.03.22.58.24;	author christos;	state Exp;
branches
	1.1.1.1;
next	;
commitid	WWTpfhLfU6SzfD4y;

1.1.1.1
date	2015.01.03.22.58.24;	author christos;	state Exp;
branches
	1.1.1.1.2.1
	1.1.1.1.4.1;
next	1.1.1.2;
commitid	WWTpfhLfU6SzfD4y;

1.1.1.2
date	2017.02.11.19.30.03;	author christos;	state Exp;
branches;
next	;
commitid	wnNPHIKvRp3plzFz;

1.1.1.1.2.1
date	2017.03.20.06.52.18;	author pgoyette;	state Exp;
branches;
next	;
commitid	jjw7cAwgyKq7RfKz;

1.1.1.1.4.1
date	2017.04.21.16.51.21;	author bouyer;	state Exp;
branches;
next	;
commitid	dUG7nkTKALCadqOz;


desc
@@


1.1
log
@Initial revision
@
text
@   0  $accept : input $end

   1  opt_scope :
   2            | CLCL
   3            | opt_scope ID CLCL

   4  typename : opt_scope ID

   5  $$1 :

   6  input : $$1 decl_list

   7  decl_list :

   8  $$2 :

   9  decl_list : decl_list $$2 decl

  10  $$3 :

  11  decl : decl_specs $$2 $$3 declarator_list ';'

  12  $$4 :

  13  decl : decl_specs $$2 $$3 declarator $$4 block_statement

  14  decl_specs : decl_spec
  15             | decl_specs $$2 decl_spec

  16  cv_quals :
  17           | cv_quals cv_qual

  18  decl_spec : cv_qual
  19            | typename
  20            | EXTERN
  21            | REGISTER
  22            | STATIC

  23  cv_qual : CONST
  24          | VOLATILE

  25  $$5 :

  26  $$6 :

  27  declarator_list : declarator_list ',' $$5 $$6 declarator
  28                  | declarator

  29  declarator :
  30             | ID

  31  $$7 :

  32  $$8 :

  33  declarator : '(' $$7 $$8 declarator ')'
  34             | '*' cv_quals $$5 $$6 declarator
  35             | declarator '[' $$5 expr ']'
  36             | declarator '(' $$5 formal_arg_list ')' cv_quals

  37  formal_arg_list :
  38                  | nonempty_formal_arg_list

  39  nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 formal_arg
  40                           | formal_arg

  41  formal_arg : decl_specs $$2 $$3 declarator

  42  expr : expr '+' $$7 expr
  43       | expr '-' $$7 expr
  44       | expr '*' $$7 expr
  45       | expr '%' $$7 expr
  46       | expr '/' $$7 expr
  47       | '*' $$2 expr
  48       | ID
  49       | CONSTANT

  50  statement : decl

  51  $$9 :

  52  statement : $$9 expr ';'

  53  $$10 :

  54  $$11 :

  55  statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement
  56            | IF '(' $$7 expr ')' THEN $$10 statement

  57  $$12 :

  58  statement : $$12 block_statement

  59  statement_list :
  60                 | statement_list $$2 statement

  61  block_statement : '{' $$2 statement_list '}'

state 0
	$accept : . input $end  (0)
	$$1 : .  (5)

	.  reduce 5

	input  goto 1
	$$1  goto 2


state 1
	$accept : input . $end  (0)

	$end  accept


state 2
	input : $$1 . decl_list  (6)
	decl_list : .  (7)

	.  reduce 7

	decl_list  goto 3


state 3
	input : $$1 decl_list .  (6)
	decl_list : decl_list . $$2 decl  (9)
	$$2 : .  (8)

	$end  reduce 6
	ID  reduce 8
	EXTERN  reduce 8
	REGISTER  reduce 8
	STATIC  reduce 8
	CONST  reduce 8
	VOLATILE  reduce 8
	CLCL  reduce 8

	$$2  goto 4


state 4
	decl_list : decl_list $$2 . decl  (9)
	opt_scope : .  (1)

	EXTERN  shift 5
	REGISTER  shift 6
	STATIC  shift 7
	CONST  shift 8
	VOLATILE  shift 9
	CLCL  shift 10
	ID  reduce 1

	decl  goto 11
	decl_specs  goto 12
	decl_spec  goto 13
	typename  goto 14
	cv_qual  goto 15
	opt_scope  goto 16


state 5
	decl_spec : EXTERN .  (20)

	.  reduce 20


state 6
	decl_spec : REGISTER .  (21)

	.  reduce 21


state 7
	decl_spec : STATIC .  (22)

	.  reduce 22


state 8
	cv_qual : CONST .  (23)

	.  reduce 23


state 9
	cv_qual : VOLATILE .  (24)

	.  reduce 24


state 10
	opt_scope : CLCL .  (2)

	.  reduce 2


state 11
	decl_list : decl_list $$2 decl .  (9)

	.  reduce 9


state 12
	decl : decl_specs . $$2 $$3 declarator_list ';'  (11)
	decl : decl_specs . $$2 $$3 declarator $$4 block_statement  (13)
	decl_specs : decl_specs . $$2 decl_spec  (15)
	$$2 : .  (8)

	.  reduce 8

	$$2  goto 17


state 13
	decl_specs : decl_spec .  (14)

	.  reduce 14


state 14
	decl_spec : typename .  (19)

	.  reduce 19


state 15
	decl_spec : cv_qual .  (18)

	.  reduce 18


state 16
	opt_scope : opt_scope . ID CLCL  (3)
	typename : opt_scope . ID  (4)

	ID  shift 18
	.  error


17: reduce/reduce conflict (reduce 1, reduce 10) on ID
state 17
	decl : decl_specs $$2 . $$3 declarator_list ';'  (11)
	decl : decl_specs $$2 . $$3 declarator $$4 block_statement  (13)
	decl_specs : decl_specs $$2 . decl_spec  (15)
	opt_scope : .  (1)
	$$3 : .  (10)

	EXTERN  shift 5
	REGISTER  shift 6
	STATIC  shift 7
	CONST  shift 8
	VOLATILE  shift 9
	CLCL  shift 10
	'*'  reduce 10
	'('  reduce 10
	'['  reduce 10
	ID  [trial] reduce 1
	ID  [trial] reduce 10
	';'  reduce 10
	','  reduce 10
	'{'  reduce 10

	decl_spec  goto 19
	typename  goto 14
	cv_qual  goto 15
	opt_scope  goto 16
	$$3  goto 20


18: shift/reduce conflict (shift 21, reduce 4) on CLCL
state 18
	opt_scope : opt_scope ID . CLCL  (3)
	typename : opt_scope ID .  (4)

	CLCL  [trial] shift 21
	'*'  reduce 4
	'('  reduce 4
	'['  reduce 4
	ID  reduce 4
	EXTERN  reduce 4
	REGISTER  reduce 4
	STATIC  reduce 4
	CONST  reduce 4
	VOLATILE  reduce 4
	CLCL  [trial] reduce 4
	';'  reduce 4
	','  reduce 4
	')'  reduce 4
	'{'  reduce 4


state 19
	decl_specs : decl_specs $$2 decl_spec .  (15)

	.  reduce 15


20: shift/reduce conflict (shift 23, reduce 29) on '('
state 20
	decl : decl_specs $$2 $$3 . declarator_list ';'  (11)
	decl : decl_specs $$2 $$3 . declarator $$4 block_statement  (13)
	declarator : .  (29)

	'*'  shift 22
	'('  [trial] shift 23
	ID  shift 24
	'('  [trial] reduce 29
	'['  reduce 29
	';'  reduce 29
	','  reduce 29
	'{'  reduce 29

	declarator_list  goto 25
	declarator  goto 26


state 21
	opt_scope : opt_scope ID CLCL .  (3)

	.  reduce 3


state 22
	declarator : '*' . cv_quals $$5 $$6 declarator  (34)
	cv_quals : .  (16)

	.  reduce 16

	cv_quals  goto 27


state 23
	declarator : '(' . $$7 $$8 declarator ')'  (33)
	$$7 : .  (31)

	.  reduce 31

	$$7  goto 28


state 24
	declarator : ID .  (30)

	.  reduce 30


state 25
	decl : decl_specs $$2 $$3 declarator_list . ';'  (11)
	declarator_list : declarator_list . ',' $$5 $$6 declarator  (27)

	';'  shift 29
	','  shift 30
	.  error


state 26
	decl : decl_specs $$2 $$3 declarator . $$4 block_statement  (13)
	declarator_list : declarator .  (28)
	declarator : declarator . '[' $$5 expr ']'  (35)
	declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals  (36)
	$$4 : .  (12)

	'('  shift 31
	'['  shift 32
	';'  reduce 28
	','  reduce 28
	'{'  reduce 12

	$$4  goto 33


state 27
	cv_quals : cv_quals . cv_qual  (17)
	declarator : '*' cv_quals . $$5 $$6 declarator  (34)
	$$5 : .  (25)

	CONST  shift 8
	VOLATILE  shift 9
	'*'  reduce 25
	'('  reduce 25
	'['  reduce 25
	ID  reduce 25
	';'  reduce 25
	','  reduce 25
	')'  reduce 25
	'{'  reduce 25

	cv_qual  goto 34
	$$5  goto 35


state 28
	declarator : '(' $$7 . $$8 declarator ')'  (33)
	$$8 : .  (32)

	.  reduce 32

	$$8  goto 36


state 29
	decl : decl_specs $$2 $$3 declarator_list ';' .  (11)

	.  reduce 11


state 30
	declarator_list : declarator_list ',' . $$5 $$6 declarator  (27)
	$$5 : .  (25)

	.  reduce 25

	$$5  goto 37


state 31
	declarator : declarator '(' . $$5 formal_arg_list ')' cv_quals  (36)
	$$5 : .  (25)

	.  reduce 25

	$$5  goto 38


state 32
	declarator : declarator '[' . $$5 expr ']'  (35)
	$$5 : .  (25)

	.  reduce 25

	$$5  goto 39


state 33
	decl : decl_specs $$2 $$3 declarator $$4 . block_statement  (13)

	'{'  shift 40
	.  error

	block_statement  goto 41


state 34
	cv_quals : cv_quals cv_qual .  (17)

	.  reduce 17


state 35
	declarator : '*' cv_quals $$5 . $$6 declarator  (34)
	$$6 : .  (26)

	.  reduce 26

	$$6  goto 42


36: shift/reduce conflict (shift 23, reduce 29) on '('
state 36
	declarator : '(' $$7 $$8 . declarator ')'  (33)
	declarator : .  (29)

	'*'  shift 22
	'('  [trial] shift 23
	ID  shift 24
	'('  [trial] reduce 29
	'['  reduce 29
	')'  reduce 29

	declarator  goto 43


state 37
	declarator_list : declarator_list ',' $$5 . $$6 declarator  (27)
	$$6 : .  (26)

	.  reduce 26

	$$6  goto 44


state 38
	declarator : declarator '(' $$5 . formal_arg_list ')' cv_quals  (36)
	opt_scope : .  (1)
	formal_arg_list : .  (37)

	EXTERN  shift 5
	REGISTER  shift 6
	STATIC  shift 7
	CONST  shift 8
	VOLATILE  shift 9
	CLCL  shift 10
	ID  reduce 1
	')'  reduce 37

	formal_arg  goto 45
	decl_specs  goto 46
	decl_spec  goto 13
	typename  goto 14
	cv_qual  goto 15
	opt_scope  goto 16
	formal_arg_list  goto 47
	nonempty_formal_arg_list  goto 48


state 39
	declarator : declarator '[' $$5 . expr ']'  (35)

	'*'  shift 49
	ID  shift 50
	CONSTANT  shift 51
	.  error

	expr  goto 52


state 40
	block_statement : '{' . $$2 statement_list '}'  (61)
	$$2 : .  (8)

	.  reduce 8

	$$2  goto 53


state 41
	decl : decl_specs $$2 $$3 declarator $$4 block_statement .  (13)

	.  reduce 13


42: shift/reduce conflict (shift 23, reduce 29) on '('
state 42
	declarator : '*' cv_quals $$5 $$6 . declarator  (34)
	declarator : .  (29)

	'*'  shift 22
	'('  [trial] shift 23
	ID  shift 24
	'('  [trial] reduce 29
	'['  reduce 29
	';'  reduce 29
	','  reduce 29
	')'  reduce 29
	'{'  reduce 29

	declarator  goto 54


state 43
	declarator : '(' $$7 $$8 declarator . ')'  (33)
	declarator : declarator . '[' $$5 expr ']'  (35)
	declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals  (36)

	'('  shift 31
	'['  shift 32
	')'  shift 55
	.  error


44: shift/reduce conflict (shift 23, reduce 29) on '('
state 44
	declarator_list : declarator_list ',' $$5 $$6 . declarator  (27)
	declarator : .  (29)

	'*'  shift 22
	'('  [trial] shift 23
	ID  shift 24
	'('  [trial] reduce 29
	'['  reduce 29
	';'  reduce 29
	','  reduce 29

	declarator  goto 56


state 45
	nonempty_formal_arg_list : formal_arg .  (40)

	.  reduce 40


state 46
	decl_specs : decl_specs . $$2 decl_spec  (15)
	formal_arg : decl_specs . $$2 $$3 declarator  (41)
	$$2 : .  (8)

	.  reduce 8

	$$2  goto 57


state 47
	declarator : declarator '(' $$5 formal_arg_list . ')' cv_quals  (36)

	')'  shift 58
	.  error


state 48
	formal_arg_list : nonempty_formal_arg_list .  (38)
	nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$7 formal_arg  (39)

	','  shift 59
	')'  reduce 38


state 49
	expr : '*' . $$2 expr  (47)
	$$2 : .  (8)

	.  reduce 8

	$$2  goto 60


state 50
	expr : ID .  (48)

	.  reduce 48


state 51
	expr : CONSTANT .  (49)

	.  reduce 49


state 52
	declarator : declarator '[' $$5 expr . ']'  (35)
	expr : expr . '+' $$7 expr  (42)
	expr : expr . '-' $$7 expr  (43)
	expr : expr . '*' $$7 expr  (44)
	expr : expr . '%' $$7 expr  (45)
	expr : expr . '/' $$7 expr  (46)

	'+'  shift 61
	'-'  shift 62
	'*'  shift 63
	'/'  shift 64
	'%'  shift 65
	']'  shift 66
	.  error


state 53
	block_statement : '{' $$2 . statement_list '}'  (61)
	statement_list : .  (59)

	.  reduce 59

	statement_list  goto 67


state 54
	declarator : '*' cv_quals $$5 $$6 declarator .  (34)
	declarator : declarator . '[' $$5 expr ']'  (35)
	declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals  (36)

	'('  shift 31
	'['  shift 32
	';'  reduce 34
	','  reduce 34
	')'  reduce 34
	'{'  reduce 34


state 55
	declarator : '(' $$7 $$8 declarator ')' .  (33)

	.  reduce 33


state 56
	declarator_list : declarator_list ',' $$5 $$6 declarator .  (27)
	declarator : declarator . '[' $$5 expr ']'  (35)
	declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals  (36)

	'('  shift 31
	'['  shift 32
	';'  reduce 27
	','  reduce 27


57: reduce/reduce conflict (reduce 1, reduce 10) on ID
state 57
	decl_specs : decl_specs $$2 . decl_spec  (15)
	formal_arg : decl_specs $$2 . $$3 declarator  (41)
	opt_scope : .  (1)
	$$3 : .  (10)

	EXTERN  shift 5
	REGISTER  shift 6
	STATIC  shift 7
	CONST  shift 8
	VOLATILE  shift 9
	CLCL  shift 10
	'*'  reduce 10
	'('  reduce 10
	'['  reduce 10
	ID  [trial] reduce 1
	ID  [trial] reduce 10
	','  reduce 10
	')'  reduce 10

	decl_spec  goto 19
	typename  goto 14
	cv_qual  goto 15
	opt_scope  goto 16
	$$3  goto 68


state 58
	declarator : declarator '(' $$5 formal_arg_list ')' . cv_quals  (36)
	cv_quals : .  (16)

	.  reduce 16

	cv_quals  goto 69


state 59
	nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$7 formal_arg  (39)
	$$7 : .  (31)

	.  reduce 31

	$$7  goto 70


state 60
	expr : '*' $$2 . expr  (47)

	'*'  shift 49
	ID  shift 50
	CONSTANT  shift 51
	.  error

	expr  goto 71


state 61
	expr : expr '+' . $$7 expr  (42)
	$$7 : .  (31)

	.  reduce 31

	$$7  goto 72


state 62
	expr : expr '-' . $$7 expr  (43)
	$$7 : .  (31)

	.  reduce 31

	$$7  goto 73


state 63
	expr : expr '*' . $$7 expr  (44)
	$$7 : .  (31)

	.  reduce 31

	$$7  goto 74


state 64
	expr : expr '/' . $$7 expr  (46)
	$$7 : .  (31)

	.  reduce 31

	$$7  goto 75


state 65
	expr : expr '%' . $$7 expr  (45)
	$$7 : .  (31)

	.  reduce 31

	$$7  goto 76


state 66
	declarator : declarator '[' $$5 expr ']' .  (35)

	.  reduce 35


state 67
	statement_list : statement_list . $$2 statement  (60)
	block_statement : '{' $$2 statement_list . '}'  (61)
	$$2 : .  (8)

	'}'  shift 77
	'*'  reduce 8
	ID  reduce 8
	CONSTANT  reduce 8
	EXTERN  reduce 8
	REGISTER  reduce 8
	STATIC  reduce 8
	CONST  reduce 8
	VOLATILE  reduce 8
	IF  reduce 8
	CLCL  reduce 8
	'{'  reduce 8

	$$2  goto 78


68: shift/reduce conflict (shift 23, reduce 29) on '('
state 68
	formal_arg : decl_specs $$2 $$3 . declarator  (41)
	declarator : .  (29)

	'*'  shift 22
	'('  [trial] shift 23
	ID  shift 24
	'('  [trial] reduce 29
	'['  reduce 29
	','  reduce 29
	')'  reduce 29

	declarator  goto 79


state 69
	cv_quals : cv_quals . cv_qual  (17)
	declarator : declarator '(' $$5 formal_arg_list ')' cv_quals .  (36)

	CONST  shift 8
	VOLATILE  shift 9
	'('  reduce 36
	'['  reduce 36
	';'  reduce 36
	','  reduce 36
	')'  reduce 36
	'{'  reduce 36

	cv_qual  goto 34


state 70
	nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 . formal_arg  (39)
	opt_scope : .  (1)

	EXTERN  shift 5
	REGISTER  shift 6
	STATIC  shift 7
	CONST  shift 8
	VOLATILE  shift 9
	CLCL  shift 10
	ID  reduce 1

	formal_arg  goto 80
	decl_specs  goto 46
	decl_spec  goto 13
	typename  goto 14
	cv_qual  goto 15
	opt_scope  goto 16


state 71
	expr : expr . '+' $$7 expr  (42)
	expr : expr . '-' $$7 expr  (43)
	expr : expr . '*' $$7 expr  (44)
	expr : expr . '%' $$7 expr  (45)
	expr : expr . '/' $$7 expr  (46)
	expr : '*' $$2 expr .  (47)

	.  reduce 47


state 72
	expr : expr '+' $$7 . expr  (42)

	'*'  shift 49
	ID  shift 50
	CONSTANT  shift 51
	.  error

	expr  goto 81


state 73
	expr : expr '-' $$7 . expr  (43)

	'*'  shift 49
	ID  shift 50
	CONSTANT  shift 51
	.  error

	expr  goto 82


state 74
	expr : expr '*' $$7 . expr  (44)

	'*'  shift 49
	ID  shift 50
	CONSTANT  shift 51
	.  error

	expr  goto 83


state 75
	expr : expr '/' $$7 . expr  (46)

	'*'  shift 49
	ID  shift 50
	CONSTANT  shift 51
	.  error

	expr  goto 84


state 76
	expr : expr '%' $$7 . expr  (45)

	'*'  shift 49
	ID  shift 50
	CONSTANT  shift 51
	.  error

	expr  goto 85


state 77
	block_statement : '{' $$2 statement_list '}' .  (61)

	.  reduce 61


78: reduce/reduce conflict (reduce 1, reduce 51) on ID
state 78
	statement_list : statement_list $$2 . statement  (60)
	opt_scope : .  (1)
	$$9 : .  (51)
	$$12 : .  (57)

	EXTERN  shift 5
	REGISTER  shift 6
	STATIC  shift 7
	CONST  shift 8
	VOLATILE  shift 9
	IF  shift 86
	CLCL  shift 10
	'*'  reduce 51
	ID  [trial] reduce 1
	ID  [trial] reduce 51
	CONSTANT  reduce 51
	'{'  reduce 57

	decl  goto 87
	statement  goto 88
	decl_specs  goto 12
	decl_spec  goto 13
	typename  goto 14
	cv_qual  goto 15
	opt_scope  goto 16
	$$9  goto 89
	$$12  goto 90


state 79
	declarator : declarator . '[' $$5 expr ']'  (35)
	declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals  (36)
	formal_arg : decl_specs $$2 $$3 declarator .  (41)

	'('  shift 31
	'['  shift 32
	','  reduce 41
	')'  reduce 41


state 80
	nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 formal_arg .  (39)

	.  reduce 39


state 81
	expr : expr . '+' $$7 expr  (42)
	expr : expr '+' $$7 expr .  (42)
	expr : expr . '-' $$7 expr  (43)
	expr : expr . '*' $$7 expr  (44)
	expr : expr . '%' $$7 expr  (45)
	expr : expr . '/' $$7 expr  (46)

	'*'  shift 63
	'/'  shift 64
	'%'  shift 65
	'+'  reduce 42
	'-'  reduce 42
	';'  reduce 42
	')'  reduce 42
	']'  reduce 42


state 82
	expr : expr . '+' $$7 expr  (42)
	expr : expr . '-' $$7 expr  (43)
	expr : expr '-' $$7 expr .  (43)
	expr : expr . '*' $$7 expr  (44)
	expr : expr . '%' $$7 expr  (45)
	expr : expr . '/' $$7 expr  (46)

	'*'  shift 63
	'/'  shift 64
	'%'  shift 65
	'+'  reduce 43
	'-'  reduce 43
	';'  reduce 43
	')'  reduce 43
	']'  reduce 43


state 83
	expr : expr . '+' $$7 expr  (42)
	expr : expr . '-' $$7 expr  (43)
	expr : expr . '*' $$7 expr  (44)
	expr : expr '*' $$7 expr .  (44)
	expr : expr . '%' $$7 expr  (45)
	expr : expr . '/' $$7 expr  (46)

	.  reduce 44


state 84
	expr : expr . '+' $$7 expr  (42)
	expr : expr . '-' $$7 expr  (43)
	expr : expr . '*' $$7 expr  (44)
	expr : expr . '%' $$7 expr  (45)
	expr : expr . '/' $$7 expr  (46)
	expr : expr '/' $$7 expr .  (46)

	.  reduce 46


state 85
	expr : expr . '+' $$7 expr  (42)
	expr : expr . '-' $$7 expr  (43)
	expr : expr . '*' $$7 expr  (44)
	expr : expr . '%' $$7 expr  (45)
	expr : expr '%' $$7 expr .  (45)
	expr : expr . '/' $$7 expr  (46)

	.  reduce 45


state 86
	statement : IF . '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement  (55)
	statement : IF . '(' $$7 expr ')' THEN $$10 statement  (56)

	'('  shift 91
	.  error


state 87
	statement : decl .  (50)

	.  reduce 50


state 88
	statement_list : statement_list $$2 statement .  (60)

	.  reduce 60


state 89
	statement : $$9 . expr ';'  (52)

	'*'  shift 49
	ID  shift 50
	CONSTANT  shift 51
	.  error

	expr  goto 92


state 90
	statement : $$12 . block_statement  (58)

	'{'  shift 40
	.  error

	block_statement  goto 93


state 91
	statement : IF '(' . $$7 expr ')' THEN $$10 statement ELSE $$11 statement  (55)
	statement : IF '(' . $$7 expr ')' THEN $$10 statement  (56)
	$$7 : .  (31)

	.  reduce 31

	$$7  goto 94


state 92
	expr : expr . '+' $$7 expr  (42)
	expr : expr . '-' $$7 expr  (43)
	expr : expr . '*' $$7 expr  (44)
	expr : expr . '%' $$7 expr  (45)
	expr : expr . '/' $$7 expr  (46)
	statement : $$9 expr . ';'  (52)

	'+'  shift 61
	'-'  shift 62
	'*'  shift 63
	'/'  shift 64
	'%'  shift 65
	';'  shift 95
	.  error


state 93
	statement : $$12 block_statement .  (58)

	.  reduce 58


state 94
	statement : IF '(' $$7 . expr ')' THEN $$10 statement ELSE $$11 statement  (55)
	statement : IF '(' $$7 . expr ')' THEN $$10 statement  (56)

	'*'  shift 49
	ID  shift 50
	CONSTANT  shift 51
	.  error

	expr  goto 96


state 95
	statement : $$9 expr ';' .  (52)

	.  reduce 52


state 96
	expr : expr . '+' $$7 expr  (42)
	expr : expr . '-' $$7 expr  (43)
	expr : expr . '*' $$7 expr  (44)
	expr : expr . '%' $$7 expr  (45)
	expr : expr . '/' $$7 expr  (46)
	statement : IF '(' $$7 expr . ')' THEN $$10 statement ELSE $$11 statement  (55)
	statement : IF '(' $$7 expr . ')' THEN $$10 statement  (56)

	'+'  shift 61
	'-'  shift 62
	'*'  shift 63
	'/'  shift 64
	'%'  shift 65
	')'  shift 97
	.  error


state 97
	statement : IF '(' $$7 expr ')' . THEN $$10 statement ELSE $$11 statement  (55)
	statement : IF '(' $$7 expr ')' . THEN $$10 statement  (56)

	THEN  shift 98
	.  error


state 98
	statement : IF '(' $$7 expr ')' THEN . $$10 statement ELSE $$11 statement  (55)
	statement : IF '(' $$7 expr ')' THEN . $$10 statement  (56)
	$$10 : .  (53)

	.  reduce 53

	$$10  goto 99


99: reduce/reduce conflict (reduce 1, reduce 51) on ID
state 99
	statement : IF '(' $$7 expr ')' THEN $$10 . statement ELSE $$11 statement  (55)
	statement : IF '(' $$7 expr ')' THEN $$10 . statement  (56)
	opt_scope : .  (1)
	$$9 : .  (51)
	$$12 : .  (57)

	EXTERN  shift 5
	REGISTER  shift 6
	STATIC  shift 7
	CONST  shift 8
	VOLATILE  shift 9
	IF  shift 86
	CLCL  shift 10
	'*'  reduce 51
	ID  [trial] reduce 1
	ID  [trial] reduce 51
	CONSTANT  reduce 51
	'{'  reduce 57

	decl  goto 87
	statement  goto 100
	decl_specs  goto 12
	decl_spec  goto 13
	typename  goto 14
	cv_qual  goto 15
	opt_scope  goto 16
	$$9  goto 89
	$$12  goto 90


100: shift/reduce conflict (shift 101, reduce 56) on ELSE
state 100
	statement : IF '(' $$7 expr ')' THEN $$10 statement . ELSE $$11 statement  (55)
	statement : IF '(' $$7 expr ')' THEN $$10 statement .  (56)

	ELSE  [trial] shift 101
	'*'  reduce 56
	ID  reduce 56
	CONSTANT  reduce 56
	EXTERN  reduce 56
	REGISTER  reduce 56
	STATIC  reduce 56
	CONST  reduce 56
	VOLATILE  reduce 56
	IF  reduce 56
	ELSE  [trial] reduce 56
	CLCL  reduce 56
	'{'  reduce 56
	'}'  reduce 56


state 101
	statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE . $$11 statement  (55)
	$$11 : .  (54)

	.  reduce 54

	$$11  goto 102


102: reduce/reduce conflict (reduce 1, reduce 51) on ID
state 102
	statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 . statement  (55)
	opt_scope : .  (1)
	$$9 : .  (51)
	$$12 : .  (57)

	EXTERN  shift 5
	REGISTER  shift 6
	STATIC  shift 7
	CONST  shift 8
	VOLATILE  shift 9
	IF  shift 86
	CLCL  shift 10
	'*'  reduce 51
	ID  [trial] reduce 1
	ID  [trial] reduce 51
	CONSTANT  reduce 51
	'{'  reduce 57

	decl  goto 87
	statement  goto 103
	decl_specs  goto 12
	decl_spec  goto 13
	typename  goto 14
	cv_qual  goto 15
	opt_scope  goto 16
	$$9  goto 89
	$$12  goto 90


state 103
	statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement .  (55)

	.  reduce 55


State 17 contains 1 reduce/reduce conflict.
State 18 contains 1 shift/reduce conflict.
State 20 contains 1 shift/reduce conflict.
State 36 contains 1 shift/reduce conflict.
State 42 contains 1 shift/reduce conflict.
State 44 contains 1 shift/reduce conflict.
State 57 contains 1 reduce/reduce conflict.
State 68 contains 1 shift/reduce conflict.
State 78 contains 1 reduce/reduce conflict.
State 99 contains 1 reduce/reduce conflict.
State 100 contains 1 shift/reduce conflict.
State 102 contains 1 reduce/reduce conflict.


29 terminals, 31 nonterminals
62 grammar rules, 104 states

grammar parser grammar
symbol# value# symbol
     0      0  $end
     1    256  error
     2     43  '+'
     3     45  '-'
     4     42  '*'
     5     47  '/'
     6     37  '%'
     7    257  PREFIX
     8    258  POSTFIX
     9     40  '('
    10     91  '['
    11     46  '.'
    12    259  ID
    13    260  CONSTANT
    14    261  EXTERN
    15    262  REGISTER
    16    263  STATIC
    17    264  CONST
    18    265  VOLATILE
    19    266  IF
    20    267  THEN
    21    268  ELSE
    22    269  CLCL
    23     59  ';'
    24     44  ','
    25     41  ')'
    26     93  ']'
    27    123  '{'
    28    125  '}'
    29    270  $accept
    30    271  input
    31    272  expr
    32    273  decl
    33    274  declarator_list
    34    275  decl_list
    35    276  statement
    36    277  statement_list
    37    278  block_statement
    38    279  declarator
    39    280  formal_arg
    40    281  decl_specs
    41    282  decl_spec
    42    283  typename
    43    284  cv_quals
    44    285  cv_qual
    45    286  opt_scope
    46    287  formal_arg_list
    47    288  nonempty_formal_arg_list
    48    289  $$1
    49    290  $$2
    50    291  $$3
    51    292  $$4
    52    293  $$5
    53    294  $$6
    54    295  $$7
    55    296  $$8
    56    297  $$9
    57    298  $$10
    58    299  $$11
    59    300  $$12
@


1.1.1.1
log
@Import byacc 20141128
@
text
@@


1.1.1.1.4.1
log
@Sync with HEAD
@
text
@d19 1
a19 1
  10  decl : decl_specs declarator_list ';'
d21 1
a21 1
  11  $$3 :
d23 1
a23 1
  12  decl : decl_specs declarator $$3 block_statement
d25 1
a25 2
  13  decl_specs : decl_spec
  14             | decl_specs $$2 decl_spec
d27 2
a28 2
  15  cv_quals :
  16           | cv_quals cv_qual
d30 2
a31 5
  17  decl_spec : cv_qual
  18            | typename
  19            | EXTERN
  20            | REGISTER
  21            | STATIC
d33 5
a37 2
  22  cv_qual : CONST
  23          | VOLATILE
d39 2
a40 1
  24  $$4 :
d44 1
a44 2
  26  declarator_list : declarator_list ',' $$4 $$5 declarator
  27                  | declarator
d46 2
a47 2
  28  declarator :
  29             | ID
d49 2
a50 1
  30  $$6 :
d54 1
a54 4
  32  declarator : '(' $$6 $$7 declarator ')'
  33             | '*' cv_quals $$4 $$5 declarator
  34             | declarator '[' $$4 expr ']'
  35             | declarator '(' $$4 formal_arg_list ')' cv_quals
d56 4
a59 2
  36  formal_arg_list :
  37                  | nonempty_formal_arg_list
d61 2
a62 2
  38  nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg
  39                           | formal_arg
d64 2
a65 1
  40  formal_arg : decl_specs declarator
d67 1
a67 8
  41  expr : expr '+' $$6 expr
  42       | expr '-' $$6 expr
  43       | expr '*' $$6 expr
  44       | expr '%' $$6 expr
  45       | expr '/' $$6 expr
  46       | '*' $$2 expr
  47       | ID
  48       | CONSTANT
d69 8
a76 2
  49  statement : decl
  50            | expr ';'
d78 1
a78 1
  51  $$8 :
d80 1
a80 1
  52  $$9 :
d82 1
a82 2
  53  statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement
  54            | IF '(' $$6 expr ')' THEN $$8 statement
d84 1
a84 1
  55  $$10 :
d86 1
a86 1
  56  statement : $$10 block_statement
d88 2
a89 2
  57  statement_list :
  58                 | statement_list $$2 statement
d91 8
a98 1
  59  block_statement : '{' $$2 statement_list '}'
d163 1
a163 1
	decl_spec : EXTERN .  (19)
d165 1
a165 1
	.  reduce 19
d169 1
a169 1
	decl_spec : REGISTER .  (20)
d171 1
a171 1
	.  reduce 20
d175 1
a175 1
	decl_spec : STATIC .  (21)
d177 1
a177 1
	.  reduce 21
d181 1
a181 1
	cv_qual : CONST .  (22)
d183 1
a183 1
	.  reduce 22
d187 1
a187 1
	cv_qual : VOLATILE .  (23)
d189 1
a189 1
	.  reduce 23
a203 2
12: shift/reduce conflict (shift 18, reduce 28) on '('
12: shift/reduce conflict (shift 19, reduce 8) on ID
d205 3
a207 3
	decl : decl_specs . declarator_list ';'  (10)
	decl : decl_specs . declarator $$3 block_statement  (12)
	decl_specs : decl_specs . $$2 decl_spec  (14)
a208 1
	declarator : .  (28)
d210 1
a210 15
	'*'  shift 17
	'('  [trial] shift 18
	ID  [trial] shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	ID  [trial] reduce 8
	EXTERN  reduce 8
	REGISTER  reduce 8
	STATIC  reduce 8
	CONST  reduce 8
	VOLATILE  reduce 8
	CLCL  reduce 8
	';'  reduce 28
	','  reduce 28
	'{'  reduce 28
d212 1
a212 3
	declarator_list  goto 20
	declarator  goto 21
	$$2  goto 22
d216 1
a216 1
	decl_specs : decl_spec .  (13)
d218 1
a218 1
	.  reduce 13
d222 1
a222 1
	decl_spec : typename .  (18)
d224 1
a224 1
	.  reduce 18
d228 1
a228 1
	decl_spec : cv_qual .  (17)
d230 1
a230 1
	.  reduce 17
d237 1
a237 1
	ID  shift 23
d241 1
d243 3
a245 50
	declarator : '*' . cv_quals $$4 $$5 declarator  (33)
	cv_quals : .  (15)

	.  reduce 15

	cv_quals  goto 24


state 18
	declarator : '(' . $$6 $$7 declarator ')'  (32)
	$$6 : .  (30)

	.  reduce 30

	$$6  goto 25


state 19
	declarator : ID .  (29)

	.  reduce 29


state 20
	decl : decl_specs declarator_list . ';'  (10)
	declarator_list : declarator_list . ',' $$4 $$5 declarator  (26)

	';'  shift 26
	','  shift 27
	.  error


state 21
	decl : decl_specs declarator . $$3 block_statement  (12)
	declarator_list : declarator .  (27)
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)
	$$3 : .  (11)

	'('  shift 28
	'['  shift 29
	';'  reduce 27
	','  reduce 27
	'{'  reduce 11

	$$3  goto 30


state 22
	decl_specs : decl_specs $$2 . decl_spec  (14)
d247 1
d255 8
a262 1
	ID  reduce 1
d264 1
a264 1
	decl_spec  goto 31
d268 1
d271 2
a272 2
23: shift/reduce conflict (shift 32, reduce 4) on CLCL
state 23
d276 1
a276 1
	CLCL  [trial] shift 32
d293 34
a326 4
state 24
	cv_quals : cv_quals . cv_qual  (16)
	declarator : '*' cv_quals . $$4 $$5 declarator  (33)
	$$4 : .  (24)
d328 1
a328 10
	CONST  shift 8
	VOLATILE  shift 9
	'*'  reduce 24
	'('  reduce 24
	'['  reduce 24
	ID  reduce 24
	';'  reduce 24
	','  reduce 24
	')'  reduce 24
	'{'  reduce 24
d330 1
a330 2
	cv_qual  goto 33
	$$4  goto 34
d333 2
a334 2
state 25
	declarator : '(' $$6 . $$7 declarator ')'  (32)
d339 16
a354 1
	$$7  goto 35
d358 5
a362 1
	decl : decl_specs declarator_list ';' .  (10)
d364 7
a370 1
	.  reduce 10
d374 3
a376 2
	declarator_list : declarator_list ',' . $$4 $$5 declarator  (26)
	$$4 : .  (24)
d378 10
a387 1
	.  reduce 24
d389 2
a390 1
	$$4  goto 36
d394 2
a395 2
	declarator : declarator '(' . $$4 formal_arg_list ')' cv_quals  (35)
	$$4 : .  (24)
d397 1
a397 1
	.  reduce 24
d399 1
a399 1
	$$4  goto 37
d403 1
a403 4
	declarator : declarator '[' . $$4 expr ']'  (34)
	$$4 : .  (24)

	.  reduce 24
d405 1
a405 1
	$$4  goto 38
d409 2
a410 1
	decl : decl_specs declarator $$3 . block_statement  (12)
d412 1
a412 2
	'{'  shift 39
	.  error
d414 1
a414 1
	block_statement  goto 40
d418 2
a419 1
	decl_specs : decl_specs $$2 decl_spec .  (14)
d421 3
a423 1
	.  reduce 14
d427 4
a430 1
	opt_scope : opt_scope ID CLCL .  (3)
d432 1
a432 1
	.  reduce 3
d436 4
a439 1
	cv_quals : cv_quals cv_qual .  (16)
d441 1
a441 1
	.  reduce 16
d445 1
a445 2
	declarator : '*' cv_quals $$4 . $$5 declarator  (33)
	$$5 : .  (25)
d447 1
a447 3
	.  reduce 25

	$$5  goto 41
a449 1
35: shift/reduce conflict (shift 18, reduce 28) on '('
d451 2
a452 2
	declarator : '(' $$6 $$7 . declarator ')'  (32)
	declarator : .  (28)
d454 1
a454 6
	'*'  shift 17
	'('  [trial] shift 18
	ID  shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	')'  reduce 28
d456 1
a456 1
	declarator  goto 42
d459 1
d461 2
a462 2
	declarator_list : declarator_list ',' $$4 . $$5 declarator  (26)
	$$5 : .  (25)
d464 6
a469 1
	.  reduce 25
d471 1
a471 1
	$$5  goto 43
d475 10
a484 1
	declarator : declarator '(' $$4 . formal_arg_list ')' cv_quals  (35)
d486 1
a486 1
	formal_arg_list : .  (36)
d495 1
a495 1
	')'  reduce 36
d497 2
a498 2
	formal_arg  goto 44
	decl_specs  goto 45
d503 2
a504 2
	formal_arg_list  goto 46
	nonempty_formal_arg_list  goto 47
d507 2
a508 2
state 38
	declarator : declarator '[' $$4 . expr ']'  (34)
d510 3
a512 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d515 1
a515 1
	expr  goto 51
d518 2
a519 2
state 39
	block_statement : '{' . $$2 statement_list '}'  (59)
d524 1
a524 1
	$$2  goto 52
d527 2
a528 2
state 40
	decl : decl_specs declarator $$3 block_statement .  (12)
d530 1
a530 1
	.  reduce 12
d533 4
a536 4
41: shift/reduce conflict (shift 18, reduce 28) on '('
state 41
	declarator : '*' cv_quals $$4 $$5 . declarator  (33)
	declarator : .  (28)
d538 9
a546 9
	'*'  shift 17
	'('  [trial] shift 18
	ID  shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	';'  reduce 28
	','  reduce 28
	')'  reduce 28
	'{'  reduce 28
d548 1
a548 1
	declarator  goto 53
d551 8
a558 8
state 42
	declarator : '(' $$6 $$7 declarator . ')'  (32)
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)

	'('  shift 28
	'['  shift 29
	')'  shift 54
d562 4
a565 4
43: shift/reduce conflict (shift 18, reduce 28) on '('
state 43
	declarator_list : declarator_list ',' $$4 $$5 . declarator  (26)
	declarator : .  (28)
d567 7
a573 7
	'*'  shift 17
	'('  [trial] shift 18
	ID  shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	';'  reduce 28
	','  reduce 28
d575 1
a575 1
	declarator  goto 55
d578 2
a579 2
state 44
	nonempty_formal_arg_list : formal_arg .  (39)
d581 1
a581 1
	.  reduce 39
d584 3
a586 5
45: shift/reduce conflict (shift 18, reduce 28) on '('
45: shift/reduce conflict (shift 19, reduce 8) on ID
state 45
	decl_specs : decl_specs . $$2 decl_spec  (14)
	formal_arg : decl_specs . declarator  (40)
a587 1
	declarator : .  (28)
d589 1
a589 14
	'*'  shift 17
	'('  [trial] shift 18
	ID  [trial] shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	ID  [trial] reduce 8
	EXTERN  reduce 8
	REGISTER  reduce 8
	STATIC  reduce 8
	CONST  reduce 8
	VOLATILE  reduce 8
	CLCL  reduce 8
	','  reduce 28
	')'  reduce 28
d591 1
a591 2
	declarator  goto 56
	$$2  goto 22
d594 2
a595 2
state 46
	declarator : declarator '(' $$4 formal_arg_list . ')' cv_quals  (35)
d597 1
a597 1
	')'  shift 57
d601 3
a603 3
state 47
	formal_arg_list : nonempty_formal_arg_list .  (37)
	nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$6 formal_arg  (38)
d605 2
a606 2
	','  shift 58
	')'  reduce 37
d609 2
a610 2
state 48
	expr : '*' . $$2 expr  (46)
d615 1
a615 7
	$$2  goto 59


state 49
	expr : ID .  (47)

	.  reduce 47
d619 1
a619 1
	expr : CONSTANT .  (48)
d625 3
a627 14
	declarator : declarator '[' $$4 expr . ']'  (34)
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)

	'+'  shift 60
	'-'  shift 61
	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
	']'  shift 65
	.  error
d631 14
a644 2
	block_statement : '{' $$2 . statement_list '}'  (59)
	statement_list : .  (57)
a645 1
	.  reduce 57
d647 3
a649 1
	statement_list  goto 66
d651 1
d653 1
a653 11
state 53
	declarator : '*' cv_quals $$4 $$5 declarator .  (33)
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)

	'('  shift 28
	'['  shift 29
	';'  reduce 33
	','  reduce 33
	')'  reduce 33
	'{'  reduce 33
d657 10
a666 3
	declarator : '(' $$6 $$7 declarator ')' .  (32)

	.  reduce 32
d670 3
a672 8
	declarator_list : declarator_list ',' $$4 $$5 declarator .  (26)
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)

	'('  shift 28
	'['  shift 29
	';'  reduce 26
	','  reduce 26
d676 8
a683 8
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)
	formal_arg : decl_specs declarator .  (40)

	'('  shift 28
	'['  shift 29
	','  reduce 40
	')'  reduce 40
d686 1
d688 4
a691 2
	declarator : declarator '(' $$4 formal_arg_list ')' . cv_quals  (35)
	cv_quals : .  (15)
d693 13
a705 1
	.  reduce 15
d707 5
a711 1
	cv_quals  goto 67
d715 2
a716 2
	nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$6 formal_arg  (38)
	$$6 : .  (30)
d718 1
a718 1
	.  reduce 30
d720 1
a720 1
	$$6  goto 68
d724 2
a725 1
	expr : '*' $$2 . expr  (46)
d727 1
a727 4
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
	.  error
d729 1
a729 1
	expr  goto 69
d733 1
a733 2
	expr : expr '+' . $$6 expr  (41)
	$$6 : .  (30)
d735 4
a738 1
	.  reduce 30
d740 1
a740 1
	$$6  goto 70
d744 2
a745 2
	expr : expr '-' . $$6 expr  (42)
	$$6 : .  (30)
d747 1
a747 1
	.  reduce 30
d749 1
a749 1
	$$6  goto 71
d753 2
a754 2
	expr : expr '*' . $$6 expr  (43)
	$$6 : .  (30)
d756 1
a756 1
	.  reduce 30
d758 1
a758 1
	$$6  goto 72
d762 2
a763 2
	expr : expr '/' . $$6 expr  (45)
	$$6 : .  (30)
d765 1
a765 1
	.  reduce 30
d767 1
a767 1
	$$6  goto 73
d771 2
a772 2
	expr : expr '%' . $$6 expr  (44)
	$$6 : .  (30)
d774 1
a774 1
	.  reduce 30
d776 1
a776 1
	$$6  goto 74
d780 2
a781 1
	declarator : declarator '[' $$4 expr ']' .  (34)
d783 3
a785 1
	.  reduce 34
d789 8
a796 2
	statement_list : statement_list . $$2 statement  (58)
	block_statement : '{' $$2 statement_list . '}'  (59)
d799 1
a799 1
	'}'  shift 75
d812 1
a812 1
	$$2  goto 76
d815 19
a833 3
state 67
	cv_quals : cv_quals . cv_qual  (16)
	declarator : declarator '(' $$4 formal_arg_list ')' cv_quals .  (35)
d837 6
a842 6
	'('  reduce 35
	'['  reduce 35
	';'  reduce 35
	','  reduce 35
	')'  reduce 35
	'{'  reduce 35
d844 1
a844 1
	cv_qual  goto 33
d847 2
a848 2
state 68
	nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 . formal_arg  (38)
d859 2
a860 2
	formal_arg  goto 77
	decl_specs  goto 45
d867 7
a873 7
state 69
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)
	expr : '*' $$2 expr .  (46)
d875 1
a875 1
	.  reduce 46
d878 2
a879 2
state 70
	expr : expr '+' $$6 . expr  (41)
d881 3
a883 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d886 1
a886 1
	expr  goto 78
d889 2
a890 2
state 71
	expr : expr '-' $$6 . expr  (42)
d892 3
a894 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d897 1
a897 1
	expr  goto 79
d900 2
a901 2
state 72
	expr : expr '*' $$6 . expr  (43)
d903 3
a905 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d908 1
a908 1
	expr  goto 80
d911 2
a912 2
state 73
	expr : expr '/' $$6 . expr  (45)
d914 3
a916 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d919 1
a919 1
	expr  goto 81
d922 2
a923 2
state 74
	expr : expr '%' $$6 . expr  (44)
d925 3
a927 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d930 1
a930 1
	expr  goto 82
d933 2
a934 2
state 75
	block_statement : '{' $$2 statement_list '}' .  (59)
d936 1
a936 1
	.  reduce 59
d939 3
a941 3
76: shift/reduce conflict (shift 49, reduce 1) on ID
state 76
	statement_list : statement_list $$2 . statement  (58)
d943 2
a944 1
	$$10 : .  (55)
a945 3
	'*'  shift 48
	ID  [trial] shift 49
	CONSTANT  shift 50
d951 1
a951 1
	IF  shift 83
d953 1
d955 3
a957 1
	'{'  reduce 55
d959 2
a960 3
	expr  goto 84
	decl  goto 85
	statement  goto 86
d966 2
a967 1
	$$10  goto 87
d970 9
a978 2
state 77
	nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg .  (38)
a979 1
	.  reduce 38
d981 2
d984 1
a984 16
state 78
	expr : expr . '+' $$6 expr  (41)
	expr : expr '+' $$6 expr .  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)

	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
	'+'  reduce 41
	'-'  reduce 41
	';'  reduce 41
	')'  reduce 41
	']'  reduce 41
d987 11
a997 11
state 79
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr '-' $$6 expr .  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)

	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
a1004 22
state 80
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr '*' $$6 expr .  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)

	.  reduce 43


state 81
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)
	expr : expr '/' $$6 expr .  (45)

	.  reduce 45


d1006 15
a1020 8
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr '%' $$6 expr .  (44)
	expr : expr . '/' $$6 expr  (45)

	.  reduce 44
d1024 6
a1029 2
	statement : IF . '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF . '(' $$6 expr ')' THEN $$8 statement  (54)
d1031 1
a1031 2
	'('  shift 88
	.  error
d1035 8
a1042 14
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)
	statement : expr . ';'  (50)

	'+'  shift 60
	'-'  shift 61
	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
	';'  shift 89
	.  error
d1046 6
a1051 1
	statement : decl .  (49)
d1053 1
a1053 1
	.  reduce 49
d1057 2
a1058 1
	statement_list : statement_list $$2 statement .  (58)
d1060 2
a1061 1
	.  reduce 58
d1065 1
a1065 1
	statement : $$10 . block_statement  (56)
d1067 1
a1067 4
	'{'  shift 39
	.  error

	block_statement  goto 90
d1071 1
a1071 3
	statement : IF '(' . $$6 expr ')' THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' . $$6 expr ')' THEN $$8 statement  (54)
	$$6 : .  (30)
d1073 1
a1073 1
	.  reduce 30
a1074 1
	$$6  goto 91
d1076 2
d1079 4
a1082 2
state 89
	statement : expr ';' .  (50)
d1084 1
a1084 1
	.  reduce 50
d1088 4
a1091 1
	statement : $$10 block_statement .  (56)
d1093 1
a1093 1
	.  reduce 56
d1097 3
a1099 2
	statement : IF '(' $$6 . expr ')' THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 . expr ')' THEN $$8 statement  (54)
d1101 1
a1101 4
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
	.  error
d1103 1
a1103 1
	expr  goto 92
d1107 13
a1119 14
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)
	statement : IF '(' $$6 expr . ')' THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr . ')' THEN $$8 statement  (54)

	'+'  shift 60
	'-'  shift 61
	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
	')'  shift 93
d1124 1
a1124 2
	statement : IF '(' $$6 expr ')' . THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr ')' . THEN $$8 statement  (54)
d1126 1
a1126 2
	THEN  shift 94
	.  error
d1130 2
a1131 3
	statement : IF '(' $$6 expr ')' THEN . $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr ')' THEN . $$8 statement  (54)
	$$8 : .  (51)
d1133 4
a1136 1
	.  reduce 51
d1138 1
a1138 1
	$$8  goto 95
a1140 1
95: shift/reduce conflict (shift 49, reduce 1) on ID
d1142 45
a1186 2
	statement : IF '(' $$6 expr ')' THEN $$8 . statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr ')' THEN $$8 . statement  (54)
d1188 2
a1189 1
	$$10 : .  (55)
a1190 3
	'*'  shift 48
	ID  [trial] shift 49
	CONSTANT  shift 50
d1196 1
a1196 1
	IF  shift 83
d1198 1
d1200 3
a1202 1
	'{'  reduce 55
d1204 2
a1205 3
	expr  goto 84
	decl  goto 85
	statement  goto 96
d1211 2
a1212 22
	$$10  goto 87


96: shift/reduce conflict (shift 97, reduce 54) on ELSE
state 96
	statement : IF '(' $$6 expr ')' THEN $$8 statement . ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr ')' THEN $$8 statement .  (54)

	ELSE  [trial] shift 97
	'*'  reduce 54
	ID  reduce 54
	CONSTANT  reduce 54
	EXTERN  reduce 54
	REGISTER  reduce 54
	STATIC  reduce 54
	CONST  reduce 54
	VOLATILE  reduce 54
	IF  reduce 54
	ELSE  [trial] reduce 54
	CLCL  reduce 54
	'{'  reduce 54
	'}'  reduce 54
d1215 33
a1247 12
state 97
	statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE . $$9 statement  (53)
	$$9 : .  (52)

	.  reduce 52

	$$9  goto 98


98: shift/reduce conflict (shift 49, reduce 1) on ID
state 98
	statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 . statement  (53)
d1249 2
a1250 1
	$$10 : .  (55)
a1251 3
	'*'  shift 48
	ID  [trial] shift 49
	CONSTANT  shift 50
d1257 1
a1257 1
	IF  shift 83
d1259 1
d1261 3
a1263 1
	'{'  reduce 55
d1265 2
a1266 3
	expr  goto 84
	decl  goto 85
	statement  goto 99
d1272 2
a1273 1
	$$10  goto 87
d1276 2
a1277 2
state 99
	statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement .  (53)
d1279 1
a1279 1
	.  reduce 53
d1282 12
a1293 10
State 12 contains 2 shift/reduce conflicts.
State 23 contains 1 shift/reduce conflict.
State 35 contains 1 shift/reduce conflict.
State 41 contains 1 shift/reduce conflict.
State 43 contains 1 shift/reduce conflict.
State 45 contains 2 shift/reduce conflicts.
State 76 contains 1 shift/reduce conflict.
State 95 contains 1 shift/reduce conflict.
State 96 contains 1 shift/reduce conflict.
State 98 contains 1 shift/reduce conflict.
d1296 2
a1297 2
29 terminals, 29 nonterminals
60 grammar rules, 100 states
d1359 2
@


1.1.1.1.2.1
log
@Sync with HEAD
@
text
@d19 1
a19 1
  10  decl : decl_specs declarator_list ';'
d21 1
a21 1
  11  $$3 :
d23 1
a23 1
  12  decl : decl_specs declarator $$3 block_statement
d25 1
a25 2
  13  decl_specs : decl_spec
  14             | decl_specs $$2 decl_spec
d27 2
a28 2
  15  cv_quals :
  16           | cv_quals cv_qual
d30 2
a31 5
  17  decl_spec : cv_qual
  18            | typename
  19            | EXTERN
  20            | REGISTER
  21            | STATIC
d33 5
a37 2
  22  cv_qual : CONST
  23          | VOLATILE
d39 2
a40 1
  24  $$4 :
d44 1
a44 2
  26  declarator_list : declarator_list ',' $$4 $$5 declarator
  27                  | declarator
d46 2
a47 2
  28  declarator :
  29             | ID
d49 2
a50 1
  30  $$6 :
d54 1
a54 4
  32  declarator : '(' $$6 $$7 declarator ')'
  33             | '*' cv_quals $$4 $$5 declarator
  34             | declarator '[' $$4 expr ']'
  35             | declarator '(' $$4 formal_arg_list ')' cv_quals
d56 4
a59 2
  36  formal_arg_list :
  37                  | nonempty_formal_arg_list
d61 2
a62 2
  38  nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg
  39                           | formal_arg
d64 2
a65 1
  40  formal_arg : decl_specs declarator
d67 1
a67 8
  41  expr : expr '+' $$6 expr
  42       | expr '-' $$6 expr
  43       | expr '*' $$6 expr
  44       | expr '%' $$6 expr
  45       | expr '/' $$6 expr
  46       | '*' $$2 expr
  47       | ID
  48       | CONSTANT
d69 8
a76 2
  49  statement : decl
  50            | expr ';'
d78 1
a78 1
  51  $$8 :
d80 1
a80 1
  52  $$9 :
d82 1
a82 2
  53  statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement
  54            | IF '(' $$6 expr ')' THEN $$8 statement
d84 1
a84 1
  55  $$10 :
d86 1
a86 1
  56  statement : $$10 block_statement
d88 2
a89 2
  57  statement_list :
  58                 | statement_list $$2 statement
d91 8
a98 1
  59  block_statement : '{' $$2 statement_list '}'
d163 1
a163 1
	decl_spec : EXTERN .  (19)
d165 1
a165 1
	.  reduce 19
d169 1
a169 1
	decl_spec : REGISTER .  (20)
d171 1
a171 1
	.  reduce 20
d175 1
a175 1
	decl_spec : STATIC .  (21)
d177 1
a177 1
	.  reduce 21
d181 1
a181 1
	cv_qual : CONST .  (22)
d183 1
a183 1
	.  reduce 22
d187 1
a187 1
	cv_qual : VOLATILE .  (23)
d189 1
a189 1
	.  reduce 23
a203 2
12: shift/reduce conflict (shift 18, reduce 28) on '('
12: shift/reduce conflict (shift 19, reduce 8) on ID
d205 3
a207 3
	decl : decl_specs . declarator_list ';'  (10)
	decl : decl_specs . declarator $$3 block_statement  (12)
	decl_specs : decl_specs . $$2 decl_spec  (14)
a208 1
	declarator : .  (28)
d210 1
a210 15
	'*'  shift 17
	'('  [trial] shift 18
	ID  [trial] shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	ID  [trial] reduce 8
	EXTERN  reduce 8
	REGISTER  reduce 8
	STATIC  reduce 8
	CONST  reduce 8
	VOLATILE  reduce 8
	CLCL  reduce 8
	';'  reduce 28
	','  reduce 28
	'{'  reduce 28
d212 1
a212 3
	declarator_list  goto 20
	declarator  goto 21
	$$2  goto 22
d216 1
a216 1
	decl_specs : decl_spec .  (13)
d218 1
a218 1
	.  reduce 13
d222 1
a222 1
	decl_spec : typename .  (18)
d224 1
a224 1
	.  reduce 18
d228 1
a228 1
	decl_spec : cv_qual .  (17)
d230 1
a230 1
	.  reduce 17
d237 1
a237 1
	ID  shift 23
d241 1
d243 3
a245 50
	declarator : '*' . cv_quals $$4 $$5 declarator  (33)
	cv_quals : .  (15)

	.  reduce 15

	cv_quals  goto 24


state 18
	declarator : '(' . $$6 $$7 declarator ')'  (32)
	$$6 : .  (30)

	.  reduce 30

	$$6  goto 25


state 19
	declarator : ID .  (29)

	.  reduce 29


state 20
	decl : decl_specs declarator_list . ';'  (10)
	declarator_list : declarator_list . ',' $$4 $$5 declarator  (26)

	';'  shift 26
	','  shift 27
	.  error


state 21
	decl : decl_specs declarator . $$3 block_statement  (12)
	declarator_list : declarator .  (27)
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)
	$$3 : .  (11)

	'('  shift 28
	'['  shift 29
	';'  reduce 27
	','  reduce 27
	'{'  reduce 11

	$$3  goto 30


state 22
	decl_specs : decl_specs $$2 . decl_spec  (14)
d247 1
d255 8
a262 1
	ID  reduce 1
d264 1
a264 1
	decl_spec  goto 31
d268 1
d271 2
a272 2
23: shift/reduce conflict (shift 32, reduce 4) on CLCL
state 23
d276 1
a276 1
	CLCL  [trial] shift 32
d293 34
a326 4
state 24
	cv_quals : cv_quals . cv_qual  (16)
	declarator : '*' cv_quals . $$4 $$5 declarator  (33)
	$$4 : .  (24)
d328 1
a328 10
	CONST  shift 8
	VOLATILE  shift 9
	'*'  reduce 24
	'('  reduce 24
	'['  reduce 24
	ID  reduce 24
	';'  reduce 24
	','  reduce 24
	')'  reduce 24
	'{'  reduce 24
d330 1
a330 2
	cv_qual  goto 33
	$$4  goto 34
d333 2
a334 2
state 25
	declarator : '(' $$6 . $$7 declarator ')'  (32)
d339 16
a354 1
	$$7  goto 35
d358 5
a362 1
	decl : decl_specs declarator_list ';' .  (10)
d364 7
a370 1
	.  reduce 10
d374 3
a376 2
	declarator_list : declarator_list ',' . $$4 $$5 declarator  (26)
	$$4 : .  (24)
d378 10
a387 1
	.  reduce 24
d389 2
a390 1
	$$4  goto 36
d394 2
a395 2
	declarator : declarator '(' . $$4 formal_arg_list ')' cv_quals  (35)
	$$4 : .  (24)
d397 1
a397 1
	.  reduce 24
d399 1
a399 1
	$$4  goto 37
d403 1
a403 4
	declarator : declarator '[' . $$4 expr ']'  (34)
	$$4 : .  (24)

	.  reduce 24
d405 1
a405 1
	$$4  goto 38
d409 2
a410 1
	decl : decl_specs declarator $$3 . block_statement  (12)
d412 1
a412 2
	'{'  shift 39
	.  error
d414 1
a414 1
	block_statement  goto 40
d418 2
a419 1
	decl_specs : decl_specs $$2 decl_spec .  (14)
d421 3
a423 1
	.  reduce 14
d427 4
a430 1
	opt_scope : opt_scope ID CLCL .  (3)
d432 1
a432 1
	.  reduce 3
d436 4
a439 1
	cv_quals : cv_quals cv_qual .  (16)
d441 1
a441 1
	.  reduce 16
d445 1
a445 2
	declarator : '*' cv_quals $$4 . $$5 declarator  (33)
	$$5 : .  (25)
d447 1
a447 3
	.  reduce 25

	$$5  goto 41
a449 1
35: shift/reduce conflict (shift 18, reduce 28) on '('
d451 2
a452 2
	declarator : '(' $$6 $$7 . declarator ')'  (32)
	declarator : .  (28)
d454 1
a454 6
	'*'  shift 17
	'('  [trial] shift 18
	ID  shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	')'  reduce 28
d456 1
a456 1
	declarator  goto 42
d459 1
d461 2
a462 2
	declarator_list : declarator_list ',' $$4 . $$5 declarator  (26)
	$$5 : .  (25)
d464 6
a469 1
	.  reduce 25
d471 1
a471 1
	$$5  goto 43
d475 10
a484 1
	declarator : declarator '(' $$4 . formal_arg_list ')' cv_quals  (35)
d486 1
a486 1
	formal_arg_list : .  (36)
d495 1
a495 1
	')'  reduce 36
d497 2
a498 2
	formal_arg  goto 44
	decl_specs  goto 45
d503 2
a504 2
	formal_arg_list  goto 46
	nonempty_formal_arg_list  goto 47
d507 2
a508 2
state 38
	declarator : declarator '[' $$4 . expr ']'  (34)
d510 3
a512 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d515 1
a515 1
	expr  goto 51
d518 2
a519 2
state 39
	block_statement : '{' . $$2 statement_list '}'  (59)
d524 1
a524 1
	$$2  goto 52
d527 2
a528 2
state 40
	decl : decl_specs declarator $$3 block_statement .  (12)
d530 1
a530 1
	.  reduce 12
d533 4
a536 4
41: shift/reduce conflict (shift 18, reduce 28) on '('
state 41
	declarator : '*' cv_quals $$4 $$5 . declarator  (33)
	declarator : .  (28)
d538 9
a546 9
	'*'  shift 17
	'('  [trial] shift 18
	ID  shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	';'  reduce 28
	','  reduce 28
	')'  reduce 28
	'{'  reduce 28
d548 1
a548 1
	declarator  goto 53
d551 8
a558 8
state 42
	declarator : '(' $$6 $$7 declarator . ')'  (32)
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)

	'('  shift 28
	'['  shift 29
	')'  shift 54
d562 4
a565 4
43: shift/reduce conflict (shift 18, reduce 28) on '('
state 43
	declarator_list : declarator_list ',' $$4 $$5 . declarator  (26)
	declarator : .  (28)
d567 7
a573 7
	'*'  shift 17
	'('  [trial] shift 18
	ID  shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	';'  reduce 28
	','  reduce 28
d575 1
a575 1
	declarator  goto 55
d578 2
a579 2
state 44
	nonempty_formal_arg_list : formal_arg .  (39)
d581 1
a581 1
	.  reduce 39
d584 3
a586 5
45: shift/reduce conflict (shift 18, reduce 28) on '('
45: shift/reduce conflict (shift 19, reduce 8) on ID
state 45
	decl_specs : decl_specs . $$2 decl_spec  (14)
	formal_arg : decl_specs . declarator  (40)
a587 1
	declarator : .  (28)
d589 1
a589 14
	'*'  shift 17
	'('  [trial] shift 18
	ID  [trial] shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	ID  [trial] reduce 8
	EXTERN  reduce 8
	REGISTER  reduce 8
	STATIC  reduce 8
	CONST  reduce 8
	VOLATILE  reduce 8
	CLCL  reduce 8
	','  reduce 28
	')'  reduce 28
d591 1
a591 2
	declarator  goto 56
	$$2  goto 22
d594 2
a595 2
state 46
	declarator : declarator '(' $$4 formal_arg_list . ')' cv_quals  (35)
d597 1
a597 1
	')'  shift 57
d601 3
a603 3
state 47
	formal_arg_list : nonempty_formal_arg_list .  (37)
	nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$6 formal_arg  (38)
d605 2
a606 2
	','  shift 58
	')'  reduce 37
d609 2
a610 2
state 48
	expr : '*' . $$2 expr  (46)
d615 1
a615 7
	$$2  goto 59


state 49
	expr : ID .  (47)

	.  reduce 47
d619 1
a619 1
	expr : CONSTANT .  (48)
d625 3
a627 14
	declarator : declarator '[' $$4 expr . ']'  (34)
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)

	'+'  shift 60
	'-'  shift 61
	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
	']'  shift 65
	.  error
d631 14
a644 2
	block_statement : '{' $$2 . statement_list '}'  (59)
	statement_list : .  (57)
a645 1
	.  reduce 57
d647 3
a649 1
	statement_list  goto 66
d651 1
d653 1
a653 11
state 53
	declarator : '*' cv_quals $$4 $$5 declarator .  (33)
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)

	'('  shift 28
	'['  shift 29
	';'  reduce 33
	','  reduce 33
	')'  reduce 33
	'{'  reduce 33
d657 10
a666 3
	declarator : '(' $$6 $$7 declarator ')' .  (32)

	.  reduce 32
d670 3
a672 8
	declarator_list : declarator_list ',' $$4 $$5 declarator .  (26)
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)

	'('  shift 28
	'['  shift 29
	';'  reduce 26
	','  reduce 26
d676 8
a683 8
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)
	formal_arg : decl_specs declarator .  (40)

	'('  shift 28
	'['  shift 29
	','  reduce 40
	')'  reduce 40
d686 1
d688 4
a691 2
	declarator : declarator '(' $$4 formal_arg_list ')' . cv_quals  (35)
	cv_quals : .  (15)
d693 13
a705 1
	.  reduce 15
d707 5
a711 1
	cv_quals  goto 67
d715 2
a716 2
	nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$6 formal_arg  (38)
	$$6 : .  (30)
d718 1
a718 1
	.  reduce 30
d720 1
a720 1
	$$6  goto 68
d724 2
a725 1
	expr : '*' $$2 . expr  (46)
d727 1
a727 4
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
	.  error
d729 1
a729 1
	expr  goto 69
d733 1
a733 2
	expr : expr '+' . $$6 expr  (41)
	$$6 : .  (30)
d735 4
a738 1
	.  reduce 30
d740 1
a740 1
	$$6  goto 70
d744 2
a745 2
	expr : expr '-' . $$6 expr  (42)
	$$6 : .  (30)
d747 1
a747 1
	.  reduce 30
d749 1
a749 1
	$$6  goto 71
d753 2
a754 2
	expr : expr '*' . $$6 expr  (43)
	$$6 : .  (30)
d756 1
a756 1
	.  reduce 30
d758 1
a758 1
	$$6  goto 72
d762 2
a763 2
	expr : expr '/' . $$6 expr  (45)
	$$6 : .  (30)
d765 1
a765 1
	.  reduce 30
d767 1
a767 1
	$$6  goto 73
d771 2
a772 2
	expr : expr '%' . $$6 expr  (44)
	$$6 : .  (30)
d774 1
a774 1
	.  reduce 30
d776 1
a776 1
	$$6  goto 74
d780 2
a781 1
	declarator : declarator '[' $$4 expr ']' .  (34)
d783 3
a785 1
	.  reduce 34
d789 8
a796 2
	statement_list : statement_list . $$2 statement  (58)
	block_statement : '{' $$2 statement_list . '}'  (59)
d799 1
a799 1
	'}'  shift 75
d812 1
a812 1
	$$2  goto 76
d815 19
a833 3
state 67
	cv_quals : cv_quals . cv_qual  (16)
	declarator : declarator '(' $$4 formal_arg_list ')' cv_quals .  (35)
d837 6
a842 6
	'('  reduce 35
	'['  reduce 35
	';'  reduce 35
	','  reduce 35
	')'  reduce 35
	'{'  reduce 35
d844 1
a844 1
	cv_qual  goto 33
d847 2
a848 2
state 68
	nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 . formal_arg  (38)
d859 2
a860 2
	formal_arg  goto 77
	decl_specs  goto 45
d867 7
a873 7
state 69
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)
	expr : '*' $$2 expr .  (46)
d875 1
a875 1
	.  reduce 46
d878 2
a879 2
state 70
	expr : expr '+' $$6 . expr  (41)
d881 3
a883 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d886 1
a886 1
	expr  goto 78
d889 2
a890 2
state 71
	expr : expr '-' $$6 . expr  (42)
d892 3
a894 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d897 1
a897 1
	expr  goto 79
d900 2
a901 2
state 72
	expr : expr '*' $$6 . expr  (43)
d903 3
a905 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d908 1
a908 1
	expr  goto 80
d911 2
a912 2
state 73
	expr : expr '/' $$6 . expr  (45)
d914 3
a916 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d919 1
a919 1
	expr  goto 81
d922 2
a923 2
state 74
	expr : expr '%' $$6 . expr  (44)
d925 3
a927 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d930 1
a930 1
	expr  goto 82
d933 2
a934 2
state 75
	block_statement : '{' $$2 statement_list '}' .  (59)
d936 1
a936 1
	.  reduce 59
d939 3
a941 3
76: shift/reduce conflict (shift 49, reduce 1) on ID
state 76
	statement_list : statement_list $$2 . statement  (58)
d943 2
a944 1
	$$10 : .  (55)
a945 3
	'*'  shift 48
	ID  [trial] shift 49
	CONSTANT  shift 50
d951 1
a951 1
	IF  shift 83
d953 1
d955 3
a957 1
	'{'  reduce 55
d959 2
a960 3
	expr  goto 84
	decl  goto 85
	statement  goto 86
d966 2
a967 1
	$$10  goto 87
d970 9
a978 2
state 77
	nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg .  (38)
a979 1
	.  reduce 38
d981 2
d984 1
a984 16
state 78
	expr : expr . '+' $$6 expr  (41)
	expr : expr '+' $$6 expr .  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)

	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
	'+'  reduce 41
	'-'  reduce 41
	';'  reduce 41
	')'  reduce 41
	']'  reduce 41
d987 11
a997 11
state 79
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr '-' $$6 expr .  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)

	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
a1004 22
state 80
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr '*' $$6 expr .  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)

	.  reduce 43


state 81
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)
	expr : expr '/' $$6 expr .  (45)

	.  reduce 45


d1006 15
a1020 8
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr '%' $$6 expr .  (44)
	expr : expr . '/' $$6 expr  (45)

	.  reduce 44
d1024 6
a1029 2
	statement : IF . '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF . '(' $$6 expr ')' THEN $$8 statement  (54)
d1031 1
a1031 2
	'('  shift 88
	.  error
d1035 8
a1042 14
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)
	statement : expr . ';'  (50)

	'+'  shift 60
	'-'  shift 61
	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
	';'  shift 89
	.  error
d1046 6
a1051 1
	statement : decl .  (49)
d1053 1
a1053 1
	.  reduce 49
d1057 2
a1058 1
	statement_list : statement_list $$2 statement .  (58)
d1060 2
a1061 1
	.  reduce 58
d1065 1
a1065 1
	statement : $$10 . block_statement  (56)
d1067 1
a1067 4
	'{'  shift 39
	.  error

	block_statement  goto 90
d1071 1
a1071 3
	statement : IF '(' . $$6 expr ')' THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' . $$6 expr ')' THEN $$8 statement  (54)
	$$6 : .  (30)
d1073 1
a1073 1
	.  reduce 30
a1074 1
	$$6  goto 91
d1076 2
d1079 4
a1082 2
state 89
	statement : expr ';' .  (50)
d1084 1
a1084 1
	.  reduce 50
d1088 4
a1091 1
	statement : $$10 block_statement .  (56)
d1093 1
a1093 1
	.  reduce 56
d1097 3
a1099 2
	statement : IF '(' $$6 . expr ')' THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 . expr ')' THEN $$8 statement  (54)
d1101 1
a1101 4
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
	.  error
d1103 1
a1103 1
	expr  goto 92
d1107 13
a1119 14
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)
	statement : IF '(' $$6 expr . ')' THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr . ')' THEN $$8 statement  (54)

	'+'  shift 60
	'-'  shift 61
	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
	')'  shift 93
d1124 1
a1124 2
	statement : IF '(' $$6 expr ')' . THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr ')' . THEN $$8 statement  (54)
d1126 1
a1126 2
	THEN  shift 94
	.  error
d1130 2
a1131 3
	statement : IF '(' $$6 expr ')' THEN . $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr ')' THEN . $$8 statement  (54)
	$$8 : .  (51)
d1133 4
a1136 1
	.  reduce 51
d1138 1
a1138 1
	$$8  goto 95
a1140 1
95: shift/reduce conflict (shift 49, reduce 1) on ID
d1142 45
a1186 2
	statement : IF '(' $$6 expr ')' THEN $$8 . statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr ')' THEN $$8 . statement  (54)
d1188 2
a1189 1
	$$10 : .  (55)
a1190 3
	'*'  shift 48
	ID  [trial] shift 49
	CONSTANT  shift 50
d1196 1
a1196 1
	IF  shift 83
d1198 1
d1200 3
a1202 1
	'{'  reduce 55
d1204 2
a1205 3
	expr  goto 84
	decl  goto 85
	statement  goto 96
d1211 2
a1212 22
	$$10  goto 87


96: shift/reduce conflict (shift 97, reduce 54) on ELSE
state 96
	statement : IF '(' $$6 expr ')' THEN $$8 statement . ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr ')' THEN $$8 statement .  (54)

	ELSE  [trial] shift 97
	'*'  reduce 54
	ID  reduce 54
	CONSTANT  reduce 54
	EXTERN  reduce 54
	REGISTER  reduce 54
	STATIC  reduce 54
	CONST  reduce 54
	VOLATILE  reduce 54
	IF  reduce 54
	ELSE  [trial] reduce 54
	CLCL  reduce 54
	'{'  reduce 54
	'}'  reduce 54
d1215 33
a1247 12
state 97
	statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE . $$9 statement  (53)
	$$9 : .  (52)

	.  reduce 52

	$$9  goto 98


98: shift/reduce conflict (shift 49, reduce 1) on ID
state 98
	statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 . statement  (53)
d1249 2
a1250 1
	$$10 : .  (55)
a1251 3
	'*'  shift 48
	ID  [trial] shift 49
	CONSTANT  shift 50
d1257 1
a1257 1
	IF  shift 83
d1259 1
d1261 3
a1263 1
	'{'  reduce 55
d1265 2
a1266 3
	expr  goto 84
	decl  goto 85
	statement  goto 99
d1272 2
a1273 1
	$$10  goto 87
d1276 2
a1277 2
state 99
	statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement .  (53)
d1279 1
a1279 1
	.  reduce 53
d1282 12
a1293 10
State 12 contains 2 shift/reduce conflicts.
State 23 contains 1 shift/reduce conflict.
State 35 contains 1 shift/reduce conflict.
State 41 contains 1 shift/reduce conflict.
State 43 contains 1 shift/reduce conflict.
State 45 contains 2 shift/reduce conflicts.
State 76 contains 1 shift/reduce conflict.
State 95 contains 1 shift/reduce conflict.
State 96 contains 1 shift/reduce conflict.
State 98 contains 1 shift/reduce conflict.
d1296 2
a1297 2
29 terminals, 29 nonterminals
60 grammar rules, 100 states
d1359 2
@


1.1.1.2
log
@2017-02-01  Thomas E. Dickey  <dickey@@invisible-island.net>

	* test/btyacc/expr.oxout.error, test/btyacc/expr.oxout.output, test/btyacc/expr.oxout.tab.c, test/btyacc/expr.oxout.tab.h, test/yacc/expr.oxout.error, test/yacc/expr.oxout.output, test/yacc/expr.oxout.tab.c, test/yacc/expr.oxout.tab.h:
	RCS_BASE

	* package/debian/copyright: update copyright

	* reader.c, defs.h, main.c:
	avoid using regex.h since some low-end platforms do not have this

	* test/expr.oxout.y: RCS_BASE

	* configure: regen

	* aclocal.m4: quiet a strict gcc warning in CF_MKSTEMP

2017-02-01  Tom.Shields

	* main.c, reader.c, defs.h:
	process #line directives, like bison and flex

2017-02-01  Thomas E. Dickey  <dickey@@invisible-island.net>

	* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
	bump

2016-12-31  Thomas E. Dickey  <dickey@@invisible-island.net>

	* config.guess, config.sub: 2017-01-01

2016-12-02  Thomas E. Dickey  <dickey@@invisible-island.net>

	* test/btyacc/quote_calc4-s.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/rename_debug.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, btyaccpar.c:
	regen

	* btyaccpar.skel: changes from NetBSD
	+ use YYINT rather than short in btyaccpar.skel
	  (some of this had already been done by Tom Shields)
	+ remove some casts of malloc/realloc

	* yaccpar.c, yaccpar.skel, output.c: changes from NetBSD
	- Add some more bison stuff to make the mesa/gallium parser work:
	    %initial-action (add missing source struct member in location)
	    %debug (unimplemented)
	    %error-verbose (unimplemented)

	This changes some existing code:
	+ yylloc is now a pointer, so
	+ the first parameter to YYERROR_DECL() is a pointer
	+ struct YYLTYPE now has a "source" field

	* test/btyacc/btyacc_demo.tab.h, test/btyacc/code_calc.tab.c, test/btyacc/code_error.tab.c, test/btyacc/err_inherit4.tab.h:
	regen

	* btyaccpar.c, btyaccpar.skel, reader.c: changes from NetBSD
	- Add some more bison stuff to make the mesa/gallium parser work:
	    %initial-action (add missing source struct member in location)
	    %debug (unimplemented)
	    %error-verbose (unimplemented)

	This changes some existing code:
	+ yylloc is now a pointer, so
	+ the first parameter to YYERROR_DECL() is a pointer
	+ struct YYLTYPE now has a "source" field

	* reader.c:
	fix from NetBSD: correct off-by-one when adding a null in copy_param()

	* reader.c: adapted from NetBSD
	- Convert *most* error fingerprints to:
	    -unterminated_arglist(int a_lineno, char *a_line, char *a_cptr)
	    +unterminated_arglist(const struct ainfo *a)
	- Cast new <ctype.h> args to unsigned char

	* defs.h: changes from NetBSD
	- Add some more bison stuff to make the mesa/gallium parser work:
	    %initial-action (add missing source struct member in location)
	    %debug (unimplemented)
	    %error-verbose (unimplemented)

	This changes some existing code:
	+ yylloc is now a pointer, so
	+ the first parameter to YYERROR_DECL() is a pointer
	+ struct YYLTYPE now has a "source" field

	* defs.h: adapted from NetBSD
	- Convert *most* error fingerprints to:
	    -unterminated_arglist(int a_lineno, char *a_line, char *a_cptr)
	    +unterminated_arglist(const struct ainfo *a)
	- Cast new <ctype.h> args to unsigned char

	* main.c: changes from NetBSD
	- Add some more bison stuff to make the mesa/gallium parser work:
	    %initial-action (add missing source struct member in location)
	    %debug (unimplemented)
	    %error-verbose (unimplemented)

	This changes some existing code:
	+ yylloc is now a pointer, so
	+ the first parameter to YYERROR_DECL() is a pointer
	+ struct YYLTYPE now has a "source" field

	* error.c: adapted from NetBSD
	- Convert *most* error fingerprints to:
	    -unterminated_arglist(int a_lineno, char *a_line, char *a_cptr)
	    +unterminated_arglist(const struct ainfo *a)
	- Cast new <ctype.h> args to unsigned char

	* mstring.c: adapted change from NetBSD to add casts for ctype macros

	* test/btyacc/btyacc_demo.tab.h, test/btyacc/err_inherit4.tab.h: regen

	* output.c: reorder to eliminate a forward-reference

2016-12-02  Tom.Shields

	* output.c:
	modify output to enable compilation of a lexer generated by flex (using
	"%option bison-bridge" and "%option bison-locations") to be used with a parser
	generated by b(t)yacc (using directives "%locations" and "%pure-parser").

2016-12-02  Thomas E. Dickey  <dickey@@invisible-island.net>

	* configure: regen

	* aclocal.m4: Improved autoconf macros
	CF_CC_ENV_FLAGS
	+ improve split between compiler and options, prompted by report where user
	  had "ccache" before the compiler
	+ leave non-preprocessor options in "$CC" (but still copy them to "$CFLAGS"
	  since that's where they should be)
	CF_GNU_SOURCE,v
	+ recent glibc (Debian 2.23-4 for example) has misordered ifdef/checks for new
	  symbol _DEFAULT_SOURCE, producing warning messages when only _GNU_SOURCE is
	  defined.  Add a followup check to define _DEFAULT_SOURCE.
	CF_XOPEN_SOURCE
	+ add "uclinux" to list of Linux's (patch by Yann E.  Morin)
	+ use _GNU_SOURCE for cygwin headers
	+ build-fixes for OS/2

	* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
	bump

2016-11-20  Thomas E. Dickey  <dickey@@invisible-island.net>

	* config.sub: 2016-11-19

	* config.guess: 2016-10-02

2016-06-06  Thomas E. Dickey  <dickey@@invisible-island.net>

	* configure: regen

	* aclocal.m4: improved autoconf macros:
	CF_CC_ENV_FLAGS - don't limit the check to -I, -U and -D options, since the
		added options can include various compiler options before and after
		preprocessor options.
	CF_PROG_LINT - add cpplint to programs to use; drop ad hoc tdlint and alint.

	* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
	bump

	* lalr.c: indented

	* btyaccpar.c: regen

	* skel2c:
	adjust whitespace so that generated skeleton will follow the same format
	as other code

	* mkpar.c, verbose.c, lr0.c, reader.c, error.c, output.c: indented

	* reader.c: fix two compiler warnings

	* test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/rename_debug.c, btyaccpar.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/ok_syntax1.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/rename_debug.c, yaccpar.c:
	regen

2016-06-06  Tom.Shields

	* btyaccpar.skel, yaccpar.skel:
	small fix for an edge case of initialized data in Chris Dodd's btyacc changes:
	"Avoid crash when input pops up an Action error at the first token"

2016-06-01  Thomas E. Dickey  <dickey@@invisible-island.net>

	* test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/err_syntax24.error, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/ok_syntax1.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_calc.tab.c, test/yacc/code_calc.tab.h, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/rename_debug.c, yaccpar.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/err_syntax13.tab.c, test/btyacc/err_syntax14.tab.c, test/btyacc/err_syntax15.tab.c, test/btyacc/err_syntax16.tab.c, test/btyacc/err_syntax17.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax19.tab.c, test/btyacc/err_syntax2.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/err_syntax21.tab.c, test/btyacc/err_syntax22.tab.c, test/btyacc/err_syntax23.tab.c, test/btyacc/err_syntax24.error, test/btyacc/err_syntax24.tab.c, test/btyacc/err_syntax25.tab.c, test/btyacc/err_syntax26.tab.c, test/btyacc/err_syntax27.tab.c, test/btyacc/err_syntax3.tab.c, test/btyacc/err_syntax4.tab.c, test/btyacc/err_syntax5.tab.c, test/btyacc/err_syntax6.tab.c, test/btyacc/err_syntax7.tab.c, test/btyacc/err_syntax7a.tab.c, test/btyacc/err_syntax7b.tab.c, test/btyacc/err_syntax8.tab.c, test/btyacc/err_syntax8a.tab.c, test/btyacc/err_syntax9.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.output, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.error, test/btyacc/btyacc_demo.output, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_calc.tab.c, test/btyacc/code_calc.tab.h, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit1.tab.c, test/btyacc/err_inherit2.tab.c, test/btyacc/err_inherit3.output, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.output, test/btyacc/err_inherit4.tab.c, test/btyacc/err_inherit5.tab.c, test/btyacc/err_syntax1.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/rename_debug.c, btyaccpar.c:
	regen

2016-06-01  Tom.Shields

	* btyaccpar.skel, defs.h, error.c, output.c, reader.c, test/code_calc.y, test/err_inherit4.y, test/run_make.sh, yaccpar.skel:
	fixes for issues in btyacc (report by Francis Andre):

	+ correction to the placement of the #line directive for a %union specification

	+ recovery of a set of casts originally added into btyaccpar.c rather than into
	  btyaccpar.skel, and so are lost whenever building from scratch

	+ Chris Dodd's btyacc improved handling of inherited attributes to eliminate
	  implicit empty copy rules that are not necessary, and thereby avoiding the
	  introduction of extra parsing ambiguity

	+ Chris Dodd's added support for @@-N syntax to reference inherited position
	  information

	+ correction to bad interaction between %token-table and YYDEBUG, where YYDEBUG
	  was required to be defined in order to compile the generated code

	+ correction to yyname[] access in code included with YYDEBUG defined for
	  single character symbols not recognized (e.g., input containing '&' character
	  where grammar doesn't define that as a symbol) - map to existing
	  "illegal-symbol" entry in byname[]

	+ fixes to test/run_make.sh:  skip test-err_* files; in the bison test phase
	  skip additional files that contain features not supported by bison and
	  inhibit new bison warning messages

	+ minor changes to btyaccpar.skel & yaccpar.skel so they are more similar in
	  their commonality; makes it easier to maintain the pair of files using
	  vimdiff

	+ changes to a couple of test cases for coverage of #3, #4 and #5 above

2016-06-01  Thomas E. Dickey  <dickey@@invisible-island.net>

	* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
	bump

2016-03-24  Thomas E. Dickey  <dickey@@invisible-island.net>

	* reader.c: unused variable

	* package/pkgsrc/Makefile, package/debian/copyright: bump

2016-03-24  Jung-uk.Kim

	* main.c:
	correct logic for finding output suffix in the "-o" option, which matched
	the first occurrence of ".c" in the name in 2005-08-13 changes rather than
	at the end of the filename (patch by Jung-uk Kim)

2016-03-24  Thomas E. Dickey  <dickey@@invisible-island.net>

	* aclocal.m4:
	update CF_WITH_MAN2HTML to use configured shell rather than /bin/sh

	* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
	bump

2016-01-25  Thomas E. Dickey  <dickey@@invisible-island.net>

	* config.guess, config.sub: 2016-01-01
@
text
@d19 1
a19 1
  10  decl : decl_specs declarator_list ';'
d21 1
a21 1
  11  $$3 :
d23 1
a23 1
  12  decl : decl_specs declarator $$3 block_statement
d25 1
a25 2
  13  decl_specs : decl_spec
  14             | decl_specs $$2 decl_spec
d27 2
a28 2
  15  cv_quals :
  16           | cv_quals cv_qual
d30 2
a31 5
  17  decl_spec : cv_qual
  18            | typename
  19            | EXTERN
  20            | REGISTER
  21            | STATIC
d33 5
a37 2
  22  cv_qual : CONST
  23          | VOLATILE
d39 2
a40 1
  24  $$4 :
d44 1
a44 2
  26  declarator_list : declarator_list ',' $$4 $$5 declarator
  27                  | declarator
d46 2
a47 2
  28  declarator :
  29             | ID
d49 2
a50 1
  30  $$6 :
d54 1
a54 4
  32  declarator : '(' $$6 $$7 declarator ')'
  33             | '*' cv_quals $$4 $$5 declarator
  34             | declarator '[' $$4 expr ']'
  35             | declarator '(' $$4 formal_arg_list ')' cv_quals
d56 4
a59 2
  36  formal_arg_list :
  37                  | nonempty_formal_arg_list
d61 2
a62 2
  38  nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg
  39                           | formal_arg
d64 2
a65 1
  40  formal_arg : decl_specs declarator
d67 1
a67 8
  41  expr : expr '+' $$6 expr
  42       | expr '-' $$6 expr
  43       | expr '*' $$6 expr
  44       | expr '%' $$6 expr
  45       | expr '/' $$6 expr
  46       | '*' $$2 expr
  47       | ID
  48       | CONSTANT
d69 8
a76 2
  49  statement : decl
  50            | expr ';'
d78 1
a78 1
  51  $$8 :
d80 1
a80 1
  52  $$9 :
d82 1
a82 2
  53  statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement
  54            | IF '(' $$6 expr ')' THEN $$8 statement
d84 1
a84 1
  55  $$10 :
d86 1
a86 1
  56  statement : $$10 block_statement
d88 2
a89 2
  57  statement_list :
  58                 | statement_list $$2 statement
d91 8
a98 1
  59  block_statement : '{' $$2 statement_list '}'
d163 1
a163 1
	decl_spec : EXTERN .  (19)
d165 1
a165 1
	.  reduce 19
d169 1
a169 1
	decl_spec : REGISTER .  (20)
d171 1
a171 1
	.  reduce 20
d175 1
a175 1
	decl_spec : STATIC .  (21)
d177 1
a177 1
	.  reduce 21
d181 1
a181 1
	cv_qual : CONST .  (22)
d183 1
a183 1
	.  reduce 22
d187 1
a187 1
	cv_qual : VOLATILE .  (23)
d189 1
a189 1
	.  reduce 23
a203 2
12: shift/reduce conflict (shift 18, reduce 28) on '('
12: shift/reduce conflict (shift 19, reduce 8) on ID
d205 3
a207 3
	decl : decl_specs . declarator_list ';'  (10)
	decl : decl_specs . declarator $$3 block_statement  (12)
	decl_specs : decl_specs . $$2 decl_spec  (14)
a208 1
	declarator : .  (28)
d210 1
a210 15
	'*'  shift 17
	'('  [trial] shift 18
	ID  [trial] shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	ID  [trial] reduce 8
	EXTERN  reduce 8
	REGISTER  reduce 8
	STATIC  reduce 8
	CONST  reduce 8
	VOLATILE  reduce 8
	CLCL  reduce 8
	';'  reduce 28
	','  reduce 28
	'{'  reduce 28
d212 1
a212 3
	declarator_list  goto 20
	declarator  goto 21
	$$2  goto 22
d216 1
a216 1
	decl_specs : decl_spec .  (13)
d218 1
a218 1
	.  reduce 13
d222 1
a222 1
	decl_spec : typename .  (18)
d224 1
a224 1
	.  reduce 18
d228 1
a228 1
	decl_spec : cv_qual .  (17)
d230 1
a230 1
	.  reduce 17
d237 1
a237 1
	ID  shift 23
d241 1
d243 3
a245 50
	declarator : '*' . cv_quals $$4 $$5 declarator  (33)
	cv_quals : .  (15)

	.  reduce 15

	cv_quals  goto 24


state 18
	declarator : '(' . $$6 $$7 declarator ')'  (32)
	$$6 : .  (30)

	.  reduce 30

	$$6  goto 25


state 19
	declarator : ID .  (29)

	.  reduce 29


state 20
	decl : decl_specs declarator_list . ';'  (10)
	declarator_list : declarator_list . ',' $$4 $$5 declarator  (26)

	';'  shift 26
	','  shift 27
	.  error


state 21
	decl : decl_specs declarator . $$3 block_statement  (12)
	declarator_list : declarator .  (27)
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)
	$$3 : .  (11)

	'('  shift 28
	'['  shift 29
	';'  reduce 27
	','  reduce 27
	'{'  reduce 11

	$$3  goto 30


state 22
	decl_specs : decl_specs $$2 . decl_spec  (14)
d247 1
d255 8
a262 1
	ID  reduce 1
d264 1
a264 1
	decl_spec  goto 31
d268 1
d271 2
a272 2
23: shift/reduce conflict (shift 32, reduce 4) on CLCL
state 23
d276 1
a276 1
	CLCL  [trial] shift 32
d293 34
a326 4
state 24
	cv_quals : cv_quals . cv_qual  (16)
	declarator : '*' cv_quals . $$4 $$5 declarator  (33)
	$$4 : .  (24)
d328 1
a328 10
	CONST  shift 8
	VOLATILE  shift 9
	'*'  reduce 24
	'('  reduce 24
	'['  reduce 24
	ID  reduce 24
	';'  reduce 24
	','  reduce 24
	')'  reduce 24
	'{'  reduce 24
d330 1
a330 2
	cv_qual  goto 33
	$$4  goto 34
d333 2
a334 2
state 25
	declarator : '(' $$6 . $$7 declarator ')'  (32)
d339 16
a354 1
	$$7  goto 35
d358 5
a362 1
	decl : decl_specs declarator_list ';' .  (10)
d364 7
a370 1
	.  reduce 10
d374 3
a376 2
	declarator_list : declarator_list ',' . $$4 $$5 declarator  (26)
	$$4 : .  (24)
d378 10
a387 1
	.  reduce 24
d389 2
a390 1
	$$4  goto 36
d394 2
a395 2
	declarator : declarator '(' . $$4 formal_arg_list ')' cv_quals  (35)
	$$4 : .  (24)
d397 1
a397 1
	.  reduce 24
d399 1
a399 1
	$$4  goto 37
d403 1
a403 4
	declarator : declarator '[' . $$4 expr ']'  (34)
	$$4 : .  (24)

	.  reduce 24
d405 1
a405 1
	$$4  goto 38
d409 2
a410 1
	decl : decl_specs declarator $$3 . block_statement  (12)
d412 1
a412 2
	'{'  shift 39
	.  error
d414 1
a414 1
	block_statement  goto 40
d418 2
a419 1
	decl_specs : decl_specs $$2 decl_spec .  (14)
d421 3
a423 1
	.  reduce 14
d427 4
a430 1
	opt_scope : opt_scope ID CLCL .  (3)
d432 1
a432 1
	.  reduce 3
d436 4
a439 1
	cv_quals : cv_quals cv_qual .  (16)
d441 1
a441 1
	.  reduce 16
d445 1
a445 2
	declarator : '*' cv_quals $$4 . $$5 declarator  (33)
	$$5 : .  (25)
d447 1
a447 3
	.  reduce 25

	$$5  goto 41
a449 1
35: shift/reduce conflict (shift 18, reduce 28) on '('
d451 2
a452 2
	declarator : '(' $$6 $$7 . declarator ')'  (32)
	declarator : .  (28)
d454 1
a454 6
	'*'  shift 17
	'('  [trial] shift 18
	ID  shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	')'  reduce 28
d456 1
a456 1
	declarator  goto 42
d459 1
d461 2
a462 2
	declarator_list : declarator_list ',' $$4 . $$5 declarator  (26)
	$$5 : .  (25)
d464 6
a469 1
	.  reduce 25
d471 1
a471 1
	$$5  goto 43
d475 10
a484 1
	declarator : declarator '(' $$4 . formal_arg_list ')' cv_quals  (35)
d486 1
a486 1
	formal_arg_list : .  (36)
d495 1
a495 1
	')'  reduce 36
d497 2
a498 2
	formal_arg  goto 44
	decl_specs  goto 45
d503 2
a504 2
	formal_arg_list  goto 46
	nonempty_formal_arg_list  goto 47
d507 2
a508 2
state 38
	declarator : declarator '[' $$4 . expr ']'  (34)
d510 3
a512 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d515 1
a515 1
	expr  goto 51
d518 2
a519 2
state 39
	block_statement : '{' . $$2 statement_list '}'  (59)
d524 1
a524 1
	$$2  goto 52
d527 2
a528 2
state 40
	decl : decl_specs declarator $$3 block_statement .  (12)
d530 1
a530 1
	.  reduce 12
d533 4
a536 4
41: shift/reduce conflict (shift 18, reduce 28) on '('
state 41
	declarator : '*' cv_quals $$4 $$5 . declarator  (33)
	declarator : .  (28)
d538 9
a546 9
	'*'  shift 17
	'('  [trial] shift 18
	ID  shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	';'  reduce 28
	','  reduce 28
	')'  reduce 28
	'{'  reduce 28
d548 1
a548 1
	declarator  goto 53
d551 8
a558 8
state 42
	declarator : '(' $$6 $$7 declarator . ')'  (32)
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)

	'('  shift 28
	'['  shift 29
	')'  shift 54
d562 4
a565 4
43: shift/reduce conflict (shift 18, reduce 28) on '('
state 43
	declarator_list : declarator_list ',' $$4 $$5 . declarator  (26)
	declarator : .  (28)
d567 7
a573 7
	'*'  shift 17
	'('  [trial] shift 18
	ID  shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	';'  reduce 28
	','  reduce 28
d575 1
a575 1
	declarator  goto 55
d578 2
a579 2
state 44
	nonempty_formal_arg_list : formal_arg .  (39)
d581 1
a581 1
	.  reduce 39
d584 3
a586 5
45: shift/reduce conflict (shift 18, reduce 28) on '('
45: shift/reduce conflict (shift 19, reduce 8) on ID
state 45
	decl_specs : decl_specs . $$2 decl_spec  (14)
	formal_arg : decl_specs . declarator  (40)
a587 1
	declarator : .  (28)
d589 1
a589 14
	'*'  shift 17
	'('  [trial] shift 18
	ID  [trial] shift 19
	'('  [trial] reduce 28
	'['  reduce 28
	ID  [trial] reduce 8
	EXTERN  reduce 8
	REGISTER  reduce 8
	STATIC  reduce 8
	CONST  reduce 8
	VOLATILE  reduce 8
	CLCL  reduce 8
	','  reduce 28
	')'  reduce 28
d591 1
a591 2
	declarator  goto 56
	$$2  goto 22
d594 2
a595 2
state 46
	declarator : declarator '(' $$4 formal_arg_list . ')' cv_quals  (35)
d597 1
a597 1
	')'  shift 57
d601 3
a603 3
state 47
	formal_arg_list : nonempty_formal_arg_list .  (37)
	nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$6 formal_arg  (38)
d605 2
a606 2
	','  shift 58
	')'  reduce 37
d609 2
a610 2
state 48
	expr : '*' . $$2 expr  (46)
d615 1
a615 7
	$$2  goto 59


state 49
	expr : ID .  (47)

	.  reduce 47
d619 1
a619 1
	expr : CONSTANT .  (48)
d625 3
a627 14
	declarator : declarator '[' $$4 expr . ']'  (34)
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)

	'+'  shift 60
	'-'  shift 61
	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
	']'  shift 65
	.  error
d631 14
a644 2
	block_statement : '{' $$2 . statement_list '}'  (59)
	statement_list : .  (57)
a645 1
	.  reduce 57
d647 3
a649 1
	statement_list  goto 66
d651 1
d653 1
a653 11
state 53
	declarator : '*' cv_quals $$4 $$5 declarator .  (33)
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)

	'('  shift 28
	'['  shift 29
	';'  reduce 33
	','  reduce 33
	')'  reduce 33
	'{'  reduce 33
d657 10
a666 3
	declarator : '(' $$6 $$7 declarator ')' .  (32)

	.  reduce 32
d670 3
a672 8
	declarator_list : declarator_list ',' $$4 $$5 declarator .  (26)
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)

	'('  shift 28
	'['  shift 29
	';'  reduce 26
	','  reduce 26
d676 8
a683 8
	declarator : declarator . '[' $$4 expr ']'  (34)
	declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals  (35)
	formal_arg : decl_specs declarator .  (40)

	'('  shift 28
	'['  shift 29
	','  reduce 40
	')'  reduce 40
d686 1
d688 4
a691 2
	declarator : declarator '(' $$4 formal_arg_list ')' . cv_quals  (35)
	cv_quals : .  (15)
d693 13
a705 1
	.  reduce 15
d707 5
a711 1
	cv_quals  goto 67
d715 2
a716 2
	nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$6 formal_arg  (38)
	$$6 : .  (30)
d718 1
a718 1
	.  reduce 30
d720 1
a720 1
	$$6  goto 68
d724 2
a725 1
	expr : '*' $$2 . expr  (46)
d727 1
a727 4
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
	.  error
d729 1
a729 1
	expr  goto 69
d733 1
a733 2
	expr : expr '+' . $$6 expr  (41)
	$$6 : .  (30)
d735 4
a738 1
	.  reduce 30
d740 1
a740 1
	$$6  goto 70
d744 2
a745 2
	expr : expr '-' . $$6 expr  (42)
	$$6 : .  (30)
d747 1
a747 1
	.  reduce 30
d749 1
a749 1
	$$6  goto 71
d753 2
a754 2
	expr : expr '*' . $$6 expr  (43)
	$$6 : .  (30)
d756 1
a756 1
	.  reduce 30
d758 1
a758 1
	$$6  goto 72
d762 2
a763 2
	expr : expr '/' . $$6 expr  (45)
	$$6 : .  (30)
d765 1
a765 1
	.  reduce 30
d767 1
a767 1
	$$6  goto 73
d771 2
a772 2
	expr : expr '%' . $$6 expr  (44)
	$$6 : .  (30)
d774 1
a774 1
	.  reduce 30
d776 1
a776 1
	$$6  goto 74
d780 2
a781 1
	declarator : declarator '[' $$4 expr ']' .  (34)
d783 3
a785 1
	.  reduce 34
d789 8
a796 2
	statement_list : statement_list . $$2 statement  (58)
	block_statement : '{' $$2 statement_list . '}'  (59)
d799 1
a799 1
	'}'  shift 75
d812 1
a812 1
	$$2  goto 76
d815 19
a833 3
state 67
	cv_quals : cv_quals . cv_qual  (16)
	declarator : declarator '(' $$4 formal_arg_list ')' cv_quals .  (35)
d837 6
a842 6
	'('  reduce 35
	'['  reduce 35
	';'  reduce 35
	','  reduce 35
	')'  reduce 35
	'{'  reduce 35
d844 1
a844 1
	cv_qual  goto 33
d847 2
a848 2
state 68
	nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 . formal_arg  (38)
d859 2
a860 2
	formal_arg  goto 77
	decl_specs  goto 45
d867 7
a873 7
state 69
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)
	expr : '*' $$2 expr .  (46)
d875 1
a875 1
	.  reduce 46
d878 2
a879 2
state 70
	expr : expr '+' $$6 . expr  (41)
d881 3
a883 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d886 1
a886 1
	expr  goto 78
d889 2
a890 2
state 71
	expr : expr '-' $$6 . expr  (42)
d892 3
a894 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d897 1
a897 1
	expr  goto 79
d900 2
a901 2
state 72
	expr : expr '*' $$6 . expr  (43)
d903 3
a905 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d908 1
a908 1
	expr  goto 80
d911 2
a912 2
state 73
	expr : expr '/' $$6 . expr  (45)
d914 3
a916 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d919 1
a919 1
	expr  goto 81
d922 2
a923 2
state 74
	expr : expr '%' $$6 . expr  (44)
d925 3
a927 3
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
d930 1
a930 1
	expr  goto 82
d933 2
a934 2
state 75
	block_statement : '{' $$2 statement_list '}' .  (59)
d936 1
a936 1
	.  reduce 59
d939 3
a941 3
76: shift/reduce conflict (shift 49, reduce 1) on ID
state 76
	statement_list : statement_list $$2 . statement  (58)
d943 2
a944 1
	$$10 : .  (55)
a945 3
	'*'  shift 48
	ID  [trial] shift 49
	CONSTANT  shift 50
d951 1
a951 1
	IF  shift 83
d953 1
d955 3
a957 1
	'{'  reduce 55
d959 2
a960 3
	expr  goto 84
	decl  goto 85
	statement  goto 86
d966 2
a967 1
	$$10  goto 87
d970 9
a978 2
state 77
	nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg .  (38)
a979 1
	.  reduce 38
d981 2
d984 1
a984 16
state 78
	expr : expr . '+' $$6 expr  (41)
	expr : expr '+' $$6 expr .  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)

	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
	'+'  reduce 41
	'-'  reduce 41
	';'  reduce 41
	')'  reduce 41
	']'  reduce 41
d987 11
a997 11
state 79
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr '-' $$6 expr .  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)

	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
a1004 22
state 80
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr '*' $$6 expr .  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)

	.  reduce 43


state 81
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)
	expr : expr '/' $$6 expr .  (45)

	.  reduce 45


d1006 15
a1020 8
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr '%' $$6 expr .  (44)
	expr : expr . '/' $$6 expr  (45)

	.  reduce 44
d1024 6
a1029 2
	statement : IF . '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF . '(' $$6 expr ')' THEN $$8 statement  (54)
d1031 1
a1031 2
	'('  shift 88
	.  error
d1035 8
a1042 14
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)
	statement : expr . ';'  (50)

	'+'  shift 60
	'-'  shift 61
	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
	';'  shift 89
	.  error
d1046 6
a1051 1
	statement : decl .  (49)
d1053 1
a1053 1
	.  reduce 49
d1057 2
a1058 1
	statement_list : statement_list $$2 statement .  (58)
d1060 2
a1061 1
	.  reduce 58
d1065 1
a1065 1
	statement : $$10 . block_statement  (56)
d1067 1
a1067 4
	'{'  shift 39
	.  error

	block_statement  goto 90
d1071 1
a1071 3
	statement : IF '(' . $$6 expr ')' THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' . $$6 expr ')' THEN $$8 statement  (54)
	$$6 : .  (30)
d1073 1
a1073 1
	.  reduce 30
a1074 1
	$$6  goto 91
d1076 2
d1079 4
a1082 2
state 89
	statement : expr ';' .  (50)
d1084 1
a1084 1
	.  reduce 50
d1088 4
a1091 1
	statement : $$10 block_statement .  (56)
d1093 1
a1093 1
	.  reduce 56
d1097 3
a1099 2
	statement : IF '(' $$6 . expr ')' THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 . expr ')' THEN $$8 statement  (54)
d1101 1
a1101 4
	'*'  shift 48
	ID  shift 49
	CONSTANT  shift 50
	.  error
d1103 1
a1103 1
	expr  goto 92
d1107 13
a1119 14
	expr : expr . '+' $$6 expr  (41)
	expr : expr . '-' $$6 expr  (42)
	expr : expr . '*' $$6 expr  (43)
	expr : expr . '%' $$6 expr  (44)
	expr : expr . '/' $$6 expr  (45)
	statement : IF '(' $$6 expr . ')' THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr . ')' THEN $$8 statement  (54)

	'+'  shift 60
	'-'  shift 61
	'*'  shift 62
	'/'  shift 63
	'%'  shift 64
	')'  shift 93
d1124 1
a1124 2
	statement : IF '(' $$6 expr ')' . THEN $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr ')' . THEN $$8 statement  (54)
d1126 1
a1126 2
	THEN  shift 94
	.  error
d1130 2
a1131 3
	statement : IF '(' $$6 expr ')' THEN . $$8 statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr ')' THEN . $$8 statement  (54)
	$$8 : .  (51)
d1133 4
a1136 1
	.  reduce 51
d1138 1
a1138 1
	$$8  goto 95
a1140 1
95: shift/reduce conflict (shift 49, reduce 1) on ID
d1142 45
a1186 2
	statement : IF '(' $$6 expr ')' THEN $$8 . statement ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr ')' THEN $$8 . statement  (54)
d1188 2
a1189 1
	$$10 : .  (55)
a1190 3
	'*'  shift 48
	ID  [trial] shift 49
	CONSTANT  shift 50
d1196 1
a1196 1
	IF  shift 83
d1198 1
d1200 3
a1202 1
	'{'  reduce 55
d1204 2
a1205 3
	expr  goto 84
	decl  goto 85
	statement  goto 96
d1211 2
a1212 22
	$$10  goto 87


96: shift/reduce conflict (shift 97, reduce 54) on ELSE
state 96
	statement : IF '(' $$6 expr ')' THEN $$8 statement . ELSE $$9 statement  (53)
	statement : IF '(' $$6 expr ')' THEN $$8 statement .  (54)

	ELSE  [trial] shift 97
	'*'  reduce 54
	ID  reduce 54
	CONSTANT  reduce 54
	EXTERN  reduce 54
	REGISTER  reduce 54
	STATIC  reduce 54
	CONST  reduce 54
	VOLATILE  reduce 54
	IF  reduce 54
	ELSE  [trial] reduce 54
	CLCL  reduce 54
	'{'  reduce 54
	'}'  reduce 54
d1215 33
a1247 12
state 97
	statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE . $$9 statement  (53)
	$$9 : .  (52)

	.  reduce 52

	$$9  goto 98


98: shift/reduce conflict (shift 49, reduce 1) on ID
state 98
	statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 . statement  (53)
d1249 2
a1250 1
	$$10 : .  (55)
a1251 3
	'*'  shift 48
	ID  [trial] shift 49
	CONSTANT  shift 50
d1257 1
a1257 1
	IF  shift 83
d1259 1
d1261 3
a1263 1
	'{'  reduce 55
d1265 2
a1266 3
	expr  goto 84
	decl  goto 85
	statement  goto 99
d1272 2
a1273 1
	$$10  goto 87
d1276 2
a1277 2
state 99
	statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement .  (53)
d1279 1
a1279 1
	.  reduce 53
d1282 12
a1293 10
State 12 contains 2 shift/reduce conflicts.
State 23 contains 1 shift/reduce conflict.
State 35 contains 1 shift/reduce conflict.
State 41 contains 1 shift/reduce conflict.
State 43 contains 1 shift/reduce conflict.
State 45 contains 2 shift/reduce conflicts.
State 76 contains 1 shift/reduce conflict.
State 95 contains 1 shift/reduce conflict.
State 96 contains 1 shift/reduce conflict.
State 98 contains 1 shift/reduce conflict.
d1296 2
a1297 2
29 terminals, 29 nonterminals
60 grammar rules, 100 states
d1359 2
@

