   0  $accept : rulefile $end

   1  rulefile : rules
   2           |

   3  rules : rules rule
   4        | rule

   5  rule : mrule
   6       | arule
   7       | wrule
   8       | srule
   9       | irule
  10       | brule

  11  crules : crules crule
  12         | crule

  13  crule : mrule
  14        | arule
  15        | wrule
  16        | irule
  17        | brule

  18  mrule : MAP srcpathge filetypes mapdests
  19        | CHASE srcpathge filetypes aopts

  20  arule : action dstpathge filetypes aopts

  21  wrule : WHEN dstpathge filetypes csh_cmds
  22        | WHEN dstpathge filetypes sh_cmds

  23  srule : SET BOOLVAR
  24        | UNSET BOOLVAR

  25  irule : IF ifhack boolexp crule
  26        | IF ifhack boolexp crule elsehack crule

  27  elsehack : ELSE

  28  ifhack :

  29  brule : BEGIN_ crules END

  30  filetypes :
  31            | FILETYPES

  32  action : COPY
  33         | LOCAL
  34         | LINK
  35         | DELETE
  36         | IGNORE

  37  aopts :
  38        | aopts ACTIONOPT

  39  csh_cmds : csh_cmds CSH_CMD
  40           | CSH_CMD

  41  sh_cmds : sh_cmds SH_CMD
  42          | SH_CMD

  43  mapdests : mapdests1
  44           |

  45  mapdests1 : mapdests1 MAPDEST
  46            | MAPDEST

  47  srcpathge : pathge

  48  dstpathge : pathge

  49  pathge : ge GE_END

  50  ge : ALPHANUM ge
  51     | '?' ge
  52     | '*' ge
  53     | '{' ge1 '}' ge
  54     | '[' chars ']' ge
  55     | ALPHANUM
  56     | '?'
  57     | '*'
  58     | '{' ge1 '}'
  59     | '[' chars ']'

  60  ge1 : ge2 ',' ge1
  61      | ge2

  62  ge2 : ge
  63      |

  64  chars : chars ALPHANUM
  65        | ALPHANUM

  66  boolexp0 : '!' BOOLVAR
  67           | BOOLVAR
  68           | '!' '(' boolexp ')'
  69           | '(' boolexp ')'

  70  boolexp1 : boolexp1 '&' boolexp0
  71           | boolexp0

  72  boolexp : boolexp '|' boolexp1
  73          | boolexp1

state 0
	$accept : . rulefile $end  (0)
	rulefile : .  (2)

	MAP  shift 1
	COPY  shift 2
	LOCAL  shift 3
	LINK  shift 4
	IGNORE  shift 5
	CHASE  shift 6
	DELETE  shift 7
	SET  shift 8
	UNSET  shift 9
	IF  shift 10
	BEGIN_  shift 11
	WHEN  shift 12
	$end  reduce 2

	rulefile  goto 13
	action  goto 14
	rules  goto 15
	rule  goto 16
	mrule  goto 17
	arule  goto 18
	wrule  goto 19
	srule  goto 20
	irule  goto 21
	brule  goto 22


state 1
	mrule : MAP . srcpathge filetypes mapdests  (18)

	ALPHANUM  shift 23
	'{'  shift 24
	'?'  shift 25
	'*'  shift 26
	'['  shift 27
	.  error

	pathge  goto 28
	srcpathge  goto 29
	ge  goto 30


state 2
	action : COPY .  (32)

	.  reduce 32


state 3
	action : LOCAL .  (33)

	.  reduce 33


state 4
	action : LINK .  (34)

	.  reduce 34


state 5
	action : IGNORE .  (36)

	.  reduce 36


state 6
	mrule : CHASE . srcpathge filetypes aopts  (19)

	ALPHANUM  shift 23
	'{'  shift 24
	'?'  shift 25
	'*'  shift 26
	'['  shift 27
	.  error

	pathge  goto 28
	srcpathge  goto 31
	ge  goto 30


state 7
	action : DELETE .  (35)

	.  reduce 35


state 8
	srule : SET . BOOLVAR  (23)

	BOOLVAR  shift 32
	.  error


state 9
	srule : UNSET . BOOLVAR  (24)

	BOOLVAR  shift 33
	.  error


state 10
	irule : IF . ifhack boolexp crule  (25)
	irule : IF . ifhack boolexp crule elsehack crule  (26)
	ifhack : .  (28)

	.  reduce 28

	ifhack  goto 34


state 11
	brule : BEGIN_ . crules END  (29)

	MAP  shift 1
	COPY  shift 2
	LOCAL  shift 3
	LINK  shift 4
	IGNORE  shift 5
	CHASE  shift 6
	DELETE  shift 7
	IF  shift 10
	BEGIN_  shift 11
	WHEN  shift 12
	.  error

	action  goto 14
	mrule  goto 35
	arule  goto 36
	wrule  goto 37
	irule  goto 38
	brule  goto 39
	crules  goto 40
	crule  goto 41


state 12
	wrule : WHEN . dstpathge filetypes csh_cmds  (21)
	wrule : WHEN . dstpathge filetypes sh_cmds  (22)

	ALPHANUM  shift 23
	'{'  shift 24
	'?'  shift 25
	'*'  shift 26
	'['  shift 27
	.  error

	pathge  goto 42
	dstpathge  goto 43
	ge  goto 30


state 13
	$accept : rulefile . $end  (0)

	$end  accept


state 14
	arule : action . dstpathge filetypes aopts  (20)

	ALPHANUM  shift 23
	'{'  shift 24
	'?'  shift 25
	'*'  shift 26
	'['  shift 27
	.  error

	pathge  goto 42
	dstpathge  goto 44
	ge  goto 30


state 15
	rulefile : rules .  (1)
	rules : rules . rule  (3)

	MAP  shift 1
	COPY  shift 2
	LOCAL  shift 3
	LINK  shift 4
	IGNORE  shift 5
	CHASE  shift 6
	DELETE  shift 7
	SET  shift 8
	UNSET  shift 9
	IF  shift 10
	BEGIN_  shift 11
	WHEN  shift 12
	$end  reduce 1

	action  goto 14
	rule  goto 45
	mrule  goto 17
	arule  goto 18
	wrule  goto 19
	srule  goto 20
	irule  goto 21
	brule  goto 22


state 16
	rules : rule .  (4)

	.  reduce 4


state 17
	rule : mrule .  (5)

	.  reduce 5


state 18
	rule : arule .  (6)

	.  reduce 6


state 19
	rule : wrule .  (7)

	.  reduce 7


state 20
	rule : srule .  (8)

	.  reduce 8


state 21
	rule : irule .  (9)

	.  reduce 9


state 22
	rule : brule .  (10)

	.  reduce 10


state 23
	ge : ALPHANUM . ge  (50)
	ge : ALPHANUM .  (55)

	ALPHANUM  shift 23
	'{'  shift 24
	'?'  shift 25
	'*'  shift 26
	'['  shift 27
	GE_END  reduce 55
	'}'  reduce 55
	','  reduce 55

	ge  goto 46


state 24
	ge : '{' . ge1 '}' ge  (53)
	ge : '{' . ge1 '}'  (58)
	ge2 : .  (63)

	ALPHANUM  shift 23
	'{'  shift 24
	'?'  shift 25
	'*'  shift 26
	'['  shift 27
	'}'  reduce 63
	','  reduce 63

	ge  goto 47
	ge1  goto 48
	ge2  goto 49


state 25
	ge : '?' . ge  (51)
	ge : '?' .  (56)

	ALPHANUM  shift 23
	'{'  shift 24
	'?'  shift 25
	'*'  shift 26
	'['  shift 27
	GE_END  reduce 56
	'}'  reduce 56
	','  reduce 56

	ge  goto 50


state 26
	ge : '*' . ge  (52)
	ge : '*' .  (57)

	ALPHANUM  shift 23
	'{'  shift 24
	'?'  shift 25
	'*'  shift 26
	'['  shift 27
	GE_END  reduce 57
	'}'  reduce 57
	','  reduce 57

	ge  goto 51


state 27
	ge : '[' . chars ']' ge  (54)
	ge : '[' . chars ']'  (59)

	ALPHANUM  shift 52
	.  error

	chars  goto 53


state 28
	srcpathge : pathge .  (47)

	.  reduce 47


state 29
	mrule : MAP srcpathge . filetypes mapdests  (18)
	filetypes : .  (30)

	FILETYPES  shift 54
	$end  reduce 30
	MAP  reduce 30
	COPY  reduce 30
	LOCAL  reduce 30
	LINK  reduce 30
	IGNORE  reduce 30
	CHASE  reduce 30
	DELETE  reduce 30
	SET  reduce 30
	UNSET  reduce 30
	IF  reduce 30
	ELSE  reduce 30
	BEGIN_  reduce 30
	END  reduce 30
	WHEN  reduce 30
	MAPDEST  reduce 30

	filetypes  goto 55


state 30
	pathge : ge . GE_END  (49)

	GE_END  shift 56
	.  error


state 31
	mrule : CHASE srcpathge . filetypes aopts  (19)
	filetypes : .  (30)

	FILETYPES  shift 54
	$end  reduce 30
	MAP  reduce 30
	COPY  reduce 30
	LOCAL  reduce 30
	LINK  reduce 30
	IGNORE  reduce 30
	CHASE  reduce 30
	DELETE  reduce 30
	SET  reduce 30
	UNSET  reduce 30
	IF  reduce 30
	ELSE  reduce 30
	BEGIN_  reduce 30
	END  reduce 30
	WHEN  reduce 30
	ACTIONOPT  reduce 30

	filetypes  goto 57


state 32
	srule : SET BOOLVAR .  (23)

	.  reduce 23


state 33
	srule : UNSET BOOLVAR .  (24)

	.  reduce 24


state 34
	irule : IF ifhack . boolexp crule  (25)
	irule : IF ifhack . boolexp crule elsehack crule  (26)

	'!'  shift 58
	BOOLVAR  shift 59
	'('  shift 60
	.  error

	boolexp  goto 61
	boolexp1  goto 62
	boolexp0  goto 63


state 35
	crule : mrule .  (13)

	.  reduce 13


state 36
	crule : arule .  (14)

	.  reduce 14


state 37
	crule : wrule .  (15)

	.  reduce 15


state 38
	crule : irule .  (16)

	.  reduce 16


state 39
	crule : brule .  (17)

	.  reduce 17


state 40
	crules : crules . crule  (11)
	brule : BEGIN_ crules . END  (29)

	MAP  shift 1
	COPY  shift 2
	LOCAL  shift 3
	LINK  shift 4
	IGNORE  shift 5
	CHASE  shift 6
	DELETE  shift 7
	IF  shift 10
	BEGIN_  shift 11
	END  shift 64
	WHEN  shift 12
	.  error

	action  goto 14
	mrule  goto 35
	arule  goto 36
	wrule  goto 37
	irule  goto 38
	brule  goto 39
	crule  goto 65


state 41
	crules : crule .  (12)

	.  reduce 12


state 42
	dstpathge : pathge .  (48)

	.  reduce 48


state 43
	wrule : WHEN dstpathge . filetypes csh_cmds  (21)
	wrule : WHEN dstpathge . filetypes sh_cmds  (22)
	filetypes : .  (30)

	FILETYPES  shift 54
	CSH_CMD  reduce 30
	SH_CMD  reduce 30

	filetypes  goto 66


state 44
	arule : action dstpathge . filetypes aopts  (20)
	filetypes : .  (30)

	FILETYPES  shift 54
	$end  reduce 30
	MAP  reduce 30
	COPY  reduce 30
	LOCAL  reduce 30
	LINK  reduce 30
	IGNORE  reduce 30
	CHASE  reduce 30
	DELETE  reduce 30
	SET  reduce 30
	UNSET  reduce 30
	IF  reduce 30
	ELSE  reduce 30
	BEGIN_  reduce 30
	END  reduce 30
	WHEN  reduce 30
	ACTIONOPT  reduce 30

	filetypes  goto 67


state 45
	rules : rules rule .  (3)

	.  reduce 3


state 46
	ge : ALPHANUM ge .  (50)

	.  reduce 50


state 47
	ge2 : ge .  (62)

	.  reduce 62


state 48
	ge : '{' ge1 . '}' ge  (53)
	ge : '{' ge1 . '}'  (58)

	'}'  shift 68
	.  error


state 49
	ge1 : ge2 . ',' ge1  (60)
	ge1 : ge2 .  (61)

	','  shift 69
	'}'  reduce 61


state 50
	ge : '?' ge .  (51)

	.  reduce 51


state 51
	ge : '*' ge .  (52)

	.  reduce 52


state 52
	chars : ALPHANUM .  (65)

	.  reduce 65


state 53
	ge : '[' chars . ']' ge  (54)
	ge : '[' chars . ']'  (59)
	chars : chars . ALPHANUM  (64)

	ALPHANUM  shift 70
	']'  shift 71
	.  error


state 54
	filetypes : FILETYPES .  (31)

	.  reduce 31


state 55
	mrule : MAP srcpathge filetypes . mapdests  (18)
	mapdests : .  (44)

	MAPDEST  shift 72
	$end  reduce 44
	MAP  reduce 44
	COPY  reduce 44
	LOCAL  reduce 44
	LINK  reduce 44
	IGNORE  reduce 44
	CHASE  reduce 44
	DELETE  reduce 44
	SET  reduce 44
	UNSET  reduce 44
	IF  reduce 44
	ELSE  reduce 44
	BEGIN_  reduce 44
	END  reduce 44
	WHEN  reduce 44

	mapdests  goto 73
	mapdests1  goto 74


state 56
	pathge : ge GE_END .  (49)

	.  reduce 49


state 57
	mrule : CHASE srcpathge filetypes . aopts  (19)
	aopts : .  (37)

	.  reduce 37

	aopts  goto 75


state 58
	boolexp0 : '!' . BOOLVAR  (66)
	boolexp0 : '!' . '(' boolexp ')'  (68)

	BOOLVAR  shift 76
	'('  shift 77
	.  error


state 59
	boolexp0 : BOOLVAR .  (67)

	.  reduce 67


state 60
	boolexp0 : '(' . boolexp ')'  (69)

	'!'  shift 58
	BOOLVAR  shift 59
	'('  shift 60
	.  error

	boolexp  goto 78
	boolexp1  goto 62
	boolexp0  goto 63


state 61
	irule : IF ifhack boolexp . crule  (25)
	irule : IF ifhack boolexp . crule elsehack crule  (26)
	boolexp : boolexp . '|' boolexp1  (72)

	MAP  shift 1
	COPY  shift 2
	LOCAL  shift 3
	LINK  shift 4
	IGNORE  shift 5
	CHASE  shift 6
	DELETE  shift 7
	IF  shift 10
	BEGIN_  shift 11
	WHEN  shift 12
	'|'  shift 79
	.  error

	action  goto 14
	mrule  goto 35
	arule  goto 36
	wrule  goto 37
	irule  goto 38
	brule  goto 39
	crule  goto 80


state 62
	boolexp1 : boolexp1 . '&' boolexp0  (70)
	boolexp : boolexp1 .  (73)

	'&'  shift 81
	MAP  reduce 73
	COPY  reduce 73
	LOCAL  reduce 73
	LINK  reduce 73
	IGNORE  reduce 73
	CHASE  reduce 73
	DELETE  reduce 73
	IF  reduce 73
	BEGIN_  reduce 73
	WHEN  reduce 73
	')'  reduce 73
	'|'  reduce 73


state 63
	boolexp1 : boolexp0 .  (71)

	.  reduce 71


state 64
	brule : BEGIN_ crules END .  (29)

	.  reduce 29


state 65
	crules : crules crule .  (11)

	.  reduce 11


state 66
	wrule : WHEN dstpathge filetypes . csh_cmds  (21)
	wrule : WHEN dstpathge filetypes . sh_cmds  (22)

	CSH_CMD  shift 82
	SH_CMD  shift 83
	.  error

	sh_cmds  goto 84
	csh_cmds  goto 85


state 67
	arule : action dstpathge filetypes . aopts  (20)
	aopts : .  (37)

	.  reduce 37

	aopts  goto 86


state 68
	ge : '{' ge1 '}' . ge  (53)
	ge : '{' ge1 '}' .  (58)

	ALPHANUM  shift 23
	'{'  shift 24
	'?'  shift 25
	'*'  shift 26
	'['  shift 27
	GE_END  reduce 58
	'}'  reduce 58
	','  reduce 58

	ge  goto 87


state 69
	ge1 : ge2 ',' . ge1  (60)
	ge2 : .  (63)

	ALPHANUM  shift 23
	'{'  shift 24
	'?'  shift 25
	'*'  shift 26
	'['  shift 27
	'}'  reduce 63
	','  reduce 63

	ge  goto 47
	ge1  goto 88
	ge2  goto 49


state 70
	chars : chars ALPHANUM .  (64)

	.  reduce 64


state 71
	ge : '[' chars ']' . ge  (54)
	ge : '[' chars ']' .  (59)

	ALPHANUM  shift 23
	'{'  shift 24
	'?'  shift 25
	'*'  shift 26
	'['  shift 27
	GE_END  reduce 59
	'}'  reduce 59
	','  reduce 59

	ge  goto 89


state 72
	mapdests1 : MAPDEST .  (46)

	.  reduce 46


state 73
	mrule : MAP srcpathge filetypes mapdests .  (18)

	.  reduce 18


state 74
	mapdests : mapdests1 .  (43)
	mapdests1 : mapdests1 . MAPDEST  (45)

	MAPDEST  shift 90
	$end  reduce 43
	MAP  reduce 43
	COPY  reduce 43
	LOCAL  reduce 43
	LINK  reduce 43
	IGNORE  reduce 43
	CHASE  reduce 43
	DELETE  reduce 43
	SET  reduce 43
	UNSET  reduce 43
	IF  reduce 43
	ELSE  reduce 43
	BEGIN_  reduce 43
	END  reduce 43
	WHEN  reduce 43


state 75
	mrule : CHASE srcpathge filetypes aopts .  (19)
	aopts : aopts . ACTIONOPT  (38)

	ACTIONOPT  shift 91
	$end  reduce 19
	MAP  reduce 19
	COPY  reduce 19
	LOCAL  reduce 19
	LINK  reduce 19
	IGNORE  reduce 19
	CHASE  reduce 19
	DELETE  reduce 19
	SET  reduce 19
	UNSET  reduce 19
	IF  reduce 19
	ELSE  reduce 19
	BEGIN_  reduce 19
	END  reduce 19
	WHEN  reduce 19


state 76
	boolexp0 : '!' BOOLVAR .  (66)

	.  reduce 66


state 77
	boolexp0 : '!' '(' . boolexp ')'  (68)

	'!'  shift 58
	BOOLVAR  shift 59
	'('  shift 60
	.  error

	boolexp  goto 92
	boolexp1  goto 62
	boolexp0  goto 63


state 78
	boolexp0 : '(' boolexp . ')'  (69)
	boolexp : boolexp . '|' boolexp1  (72)

	')'  shift 93
	'|'  shift 79
	.  error


state 79
	boolexp : boolexp '|' . boolexp1  (72)

	'!'  shift 58
	BOOLVAR  shift 59
	'('  shift 60
	.  error

	boolexp1  goto 94
	boolexp0  goto 63


80: shift/reduce conflict (shift 95, reduce 25) on ELSE
state 80
	irule : IF ifhack boolexp crule .  (25)
	irule : IF ifhack boolexp crule . elsehack crule  (26)

	ELSE  shift 95
	$end  reduce 25
	MAP  reduce 25
	COPY  reduce 25
	LOCAL  reduce 25
	LINK  reduce 25
	IGNORE  reduce 25
	CHASE  reduce 25
	DELETE  reduce 25
	SET  reduce 25
	UNSET  reduce 25
	IF  reduce 25
	BEGIN_  reduce 25
	END  reduce 25
	WHEN  reduce 25

	elsehack  goto 96


state 81
	boolexp1 : boolexp1 '&' . boolexp0  (70)

	'!'  shift 58
	BOOLVAR  shift 59
	'('  shift 60
	.  error

	boolexp0  goto 97


state 82
	csh_cmds : CSH_CMD .  (40)

	.  reduce 40


state 83
	sh_cmds : SH_CMD .  (42)

	.  reduce 42


state 84
	wrule : WHEN dstpathge filetypes sh_cmds .  (22)
	sh_cmds : sh_cmds . SH_CMD  (41)

	SH_CMD  shift 98
	$end  reduce 22
	MAP  reduce 22
	COPY  reduce 22
	LOCAL  reduce 22
	LINK  reduce 22
	IGNORE  reduce 22
	CHASE  reduce 22
	DELETE  reduce 22
	SET  reduce 22
	UNSET  reduce 22
	IF  reduce 22
	ELSE  reduce 22
	BEGIN_  reduce 22
	END  reduce 22
	WHEN  reduce 22


state 85
	wrule : WHEN dstpathge filetypes csh_cmds .  (21)
	csh_cmds : csh_cmds . CSH_CMD  (39)

	CSH_CMD  shift 99
	$end  reduce 21
	MAP  reduce 21
	COPY  reduce 21
	LOCAL  reduce 21
	LINK  reduce 21
	IGNORE  reduce 21
	CHASE  reduce 21
	DELETE  reduce 21
	SET  reduce 21
	UNSET  reduce 21
	IF  reduce 21
	ELSE  reduce 21
	BEGIN_  reduce 21
	END  reduce 21
	WHEN  reduce 21


state 86
	arule : action dstpathge filetypes aopts .  (20)
	aopts : aopts . ACTIONOPT  (38)

	ACTIONOPT  shift 91
	$end  reduce 20
	MAP  reduce 20
	COPY  reduce 20
	LOCAL  reduce 20
	LINK  reduce 20
	IGNORE  reduce 20
	CHASE  reduce 20
	DELETE  reduce 20
	SET  reduce 20
	UNSET  reduce 20
	IF  reduce 20
	ELSE  reduce 20
	BEGIN_  reduce 20
	END  reduce 20
	WHEN  reduce 20


state 87
	ge : '{' ge1 '}' ge .  (53)

	.  reduce 53


state 88
	ge1 : ge2 ',' ge1 .  (60)

	.  reduce 60


state 89
	ge : '[' chars ']' ge .  (54)

	.  reduce 54


state 90
	mapdests1 : mapdests1 MAPDEST .  (45)

	.  reduce 45


state 91
	aopts : aopts ACTIONOPT .  (38)

	.  reduce 38


state 92
	boolexp0 : '!' '(' boolexp . ')'  (68)
	boolexp : boolexp . '|' boolexp1  (72)

	')'  shift 100
	'|'  shift 79
	.  error


state 93
	boolexp0 : '(' boolexp ')' .  (69)

	.  reduce 69


state 94
	boolexp1 : boolexp1 . '&' boolexp0  (70)
	boolexp : boolexp '|' boolexp1 .  (72)

	'&'  shift 81
	MAP  reduce 72
	COPY  reduce 72
	LOCAL  reduce 72
	LINK  reduce 72
	IGNORE  reduce 72
	CHASE  reduce 72
	DELETE  reduce 72
	IF  reduce 72
	BEGIN_  reduce 72
	WHEN  reduce 72
	')'  reduce 72
	'|'  reduce 72


state 95
	elsehack : ELSE .  (27)

	.  reduce 27


state 96
	irule : IF ifhack boolexp crule elsehack . crule  (26)

	MAP  shift 1
	COPY  shift 2
	LOCAL  shift 3
	LINK  shift 4
	IGNORE  shift 5
	CHASE  shift 6
	DELETE  shift 7
	IF  shift 10
	BEGIN_  shift 11
	WHEN  shift 12
	.  error

	action  goto 14
	mrule  goto 35
	arule  goto 36
	wrule  goto 37
	irule  goto 38
	brule  goto 39
	crule  goto 101


state 97
	boolexp1 : boolexp1 '&' boolexp0 .  (70)

	.  reduce 70


state 98
	sh_cmds : sh_cmds SH_CMD .  (41)

	.  reduce 41


state 99
	csh_cmds : csh_cmds CSH_CMD .  (39)

	.  reduce 39


state 100
	boolexp0 : '!' '(' boolexp ')' .  (68)

	.  reduce 68


state 101
	irule : IF ifhack boolexp crule elsehack crule .  (26)

	.  reduce 26


State 80 contains 1 shift/reduce conflict.


37 terminals, 31 nonterminals
74 grammar rules, 102 states
