--- catni.y	2008-12-01 22:28:54.000000000 -0500
+++ cnino.y	2008-12-24 22:12:31.000000000 -0500
@@ -164,141 +164,150 @@
 
 
 
-%token A_501            /*        eks; basic afterthought logical connectives */
-%token BAI_502          /*        modal operators */
-%token BAhE_503         /*        next word intensifier */
-%token BE_504           /*        sumti link to attach sumti to a selbri */
-%token BEI_505          /*        multiple sumti separator between BE, BEI */
-%token BEhO_506         /*        terminates BE/BEI specified descriptors */
-%token BIhI_507         /*        interval component of JOI */
-%token BO_508           /*        joins two units with shortest scope */
-%token BRIVLA_509       /*        any brivla */
-%token BU_511           /*        turns any word into a BY lerfu word */
-%token BY_513           /*        individual lerfu words */
-%token CAhA_514         /*        specifies actuality/potentiality of tense */
-%token CAI_515          /*        afterthought intensity marker */
-%token CEI_516          /*        pro-bridi assignment operator */
-%token CEhE_517         /*        afterthought term list connective */
-%token CMENE_518        /*        names; require consonant end, then pause no
+%nonassoc shiftPrec
+
+/* By creating a dummy token with lower precedence than everything else, it
+ * becomes possible to give rules lower precedence than terminals, thereby
+ * forcing shift/reduce conflicts to be resolved via shift.
+ *  -- JTW, 24 Dec 2008 
+ */
+
+
+%nonassoc A_501            /*        eks; basic afterthought logical connectives */
+%nonassoc BAI_502          /*        modal operators */
+%nonassoc BAhE_503         /*        next word intensifier */
+%nonassoc BE_504           /*        sumti link to attach sumti to a selbri */
+%nonassoc BEI_505          /*        multiple sumti separator between BE, BEI */
+%nonassoc BEhO_506         /*        terminates BE/BEI specified descriptors */
+%nonassoc BIhI_507         /*        interval component of JOI */
+%nonassoc BO_508           /*        joins two units with shortest scope */
+%nonassoc BRIVLA_509       /*        any brivla */
+%nonassoc BU_511           /*        turns any word into a BY lerfu word */
+%nonassoc BY_513           /*        individual lerfu words */
+%nonassoc CAhA_514         /*        specifies actuality/potentiality of tense */
+%nonassoc CAI_515          /*        afterthought intensity marker */
+%nonassoc CEI_516          /*        pro-bridi assignment operator */
+%nonassoc CEhE_517         /*        afterthought term list connective */
+%nonassoc CMENE_518        /*        names; require consonant end, then pause no
                                    LA or DOI selma'o embedded, pause before if
                                    vowel initial and preceded by a vowel */
-%token CO_519           /*        tanru inversion  */
-%token COI_520          /*        vocative marker permitted inside names; must
+%nonassoc CO_519           /*        tanru inversion  */
+%nonassoc COI_520          /*        vocative marker permitted inside names; must
                                    always be followed by pause or DOI */
-%token CU_521           /*        separator between head sumti and selbri */
-%token CUhE_522         /*        tense/modal question */
-%token DAhO_524         /*        cancel anaphora/cataphora assignments */
-%token DOI_525          /*        vocative marker */
-%token DOhU_526         /*        terminator for DOI-marked vocatives */
-%token FA_527           /*        modifier head generic case tag */
-%token FAhA_528         /*        superdirections in space */
-%token FAhO_529         /*        normally elided 'done pause' to indicate end
+%nonassoc CU_521           /*        separator between head sumti and selbri */
+%nonassoc CUhE_522         /*        tense/modal question */
+%nonassoc DAhO_524         /*        cancel anaphora/cataphora assignments */
+%nonassoc DOI_525          /*        vocative marker */
+%nonassoc DOhU_526         /*        terminator for DOI-marked vocatives */
+%nonassoc FA_527           /*        modifier head generic case tag */
+%nonassoc FAhA_528         /*        superdirections in space */
+%nonassoc FAhO_529         /*        normally elided 'done pause' to indicate end
                                    of utterance string */
-%token FEhE_530         /*        space interval mod flag */
-%token FEhU_531         /*        ends bridi to modal conversion */
-%token FIhO_532         /*        marks bridi to modal conversion */
-%token FOI_533          /*        end compound lerfu */
-%token FUhE_535         /*        open long scope for indicator */
-%token FUhO_536         /*        close long scope for indicator */
-%token GA_537           /*        geks; forethought logical connectives */
-%token GEhU_538         /*        marker ending GOI relative clauses */
-%token GI_539           /*        forethought medial marker */
-%token GIhA_541         /*        logical connectives for bridi-tails */
-%token GOI_542          /*        attaches a sumti modifier to a sumti */
-%token GOhA_543         /*        pro-bridi */
-%token GUhA_544         /*        GEK for tanru units, corresponds to JEKs */
-%token I_545            /*        sentence link */
-%token JA_546           /*        jeks; logical connectives within tanru */
-%token JAI_547          /*        modal conversion flag */
-%token JOI_548          /*        non-logical connectives */
-%token KEhE_550         /*        right terminator for KE groups */
-%token KE_551           /*        left long scope marker */
-%token KEI_552          /*        right terminator, NU abstractions */
-%token KI_554           /*        multiple utterance scope for tenses */
-%token KOhA_555         /*        sumti anaphora */
-%token KU_556           /*        right terminator for descriptions, etc. */
-%token KUhO_557         /*        right terminator, NOI relative clauses */
-%token LA_558           /*        name descriptors */
-%token LAU_559          /*        lerfu prefixes */
-%token LAhE_561         /*        sumti qualifiers */
-%token LE_562           /*        sumti descriptors */
-%token LEhU_565         /*        possibly ungrammatical text right quote */
-%token LI_566           /*        convert number to sumti */
-%token LIhU_567         /*        grammatical text right quote */
-%token LOhO_568         /*        elidable terminator for LI */
-%token LOhU_569         /*        possibly ungrammatical text left quote */
-%token LU_571           /*        grammatical text left quote */
-%token LUhU_573         /*        LAhE close delimiter */
-%token ME_574           /*        converts a sumti into a tanru_unit */
-%token MEhU_575         /*        terminator for ME */
-%token MOhI_577         /*        motion tense marker */
-%token NA_578           /*        bridi negation  */
-%token NAI_581          /*        attached to words to negate them */
-%token NAhE_583         /*        scalar negation  */
-%token NIhO_584         /*        new paragraph; change of subject */
-%token NOI_585          /*        attaches a subordinate clause to a sumti */
-%token NU_586           /*        abstraction  */
-%token NUhI_587         /*        marks the start of a termset */
-%token NUhU_588         /*        marks the middle and end of a termset */
-%token PEhE_591         /*        afterthought termset connective prefix */
-%token PU_592           /*        directions in time */
-%token RAhO_593         /*        flag for modified interpretation of GOhI */
-%token ROI_594          /*        converts number to extensional tense */
-%token SA_595           /*        metalinguistic eraser to the beginning of
+%nonassoc FEhE_530         /*        space interval mod flag */
+%nonassoc FEhU_531         /*        ends bridi to modal conversion */
+%nonassoc FIhO_532         /*        marks bridi to modal conversion */
+%nonassoc FOI_533          /*        end compound lerfu */
+%nonassoc FUhE_535         /*        open long scope for indicator */
+%nonassoc FUhO_536         /*        close long scope for indicator */
+%nonassoc GA_537           /*        geks; forethought logical connectives */
+%nonassoc GEhU_538         /*        marker ending GOI relative clauses */
+%nonassoc GI_539           /*        forethought medial marker */
+%nonassoc GIhA_541         /*        logical connectives for bridi-tails */
+%nonassoc GOI_542          /*        attaches a sumti modifier to a sumti */
+%nonassoc GOhA_543         /*        pro-bridi */
+%nonassoc GUhA_544         /*        GEK for tanru units, corresponds to JEKs */
+%nonassoc I_545            /*        sentence link */
+%nonassoc JA_546           /*        jeks; logical connectives within tanru */
+%nonassoc JAI_547          /*        modal conversion flag */
+%nonassoc JOI_548          /*        non-logical connectives */
+%nonassoc KEhE_550         /*        right terminator for KE groups */
+%nonassoc KE_551           /*        left long scope marker */
+%nonassoc KEI_552          /*        right terminator, NU abstractions */
+%nonassoc KI_554           /*        multiple utterance scope for tenses */
+%nonassoc KOhA_555         /*        sumti anaphora */
+%nonassoc KU_556           /*        right terminator for descriptions, etc. */
+%nonassoc KUhO_557         /*        right terminator, NOI relative clauses */
+%nonassoc LA_558           /*        name descriptors */
+%nonassoc LAU_559          /*        lerfu prefixes */
+%nonassoc LAhE_561         /*        sumti qualifiers */
+%nonassoc LE_562           /*        sumti descriptors */
+%nonassoc LEhU_565         /*        possibly ungrammatical text right quote */
+%nonassoc LI_566           /*        convert number to sumti */
+%nonassoc LIhU_567         /*        grammatical text right quote */
+%nonassoc LOhO_568         /*        elidable terminator for LI */
+%nonassoc LOhU_569         /*        possibly ungrammatical text left quote */
+%nonassoc LU_571           /*        grammatical text left quote */
+%nonassoc LUhU_573         /*        LAhE close delimiter */
+%nonassoc ME_574           /*        converts a sumti into a tanru_unit */
+%nonassoc MEhU_575         /*        terminator for ME */
+%nonassoc MOhI_577         /*        motion tense marker */
+%nonassoc NA_578           /*        bridi negation  */
+%nonassoc NAI_581          /*        attached to words to negate them */
+%nonassoc NAhE_583         /*        scalar negation  */
+%nonassoc NIhO_584         /*        new paragraph; change of subject */
+%nonassoc NOI_585          /*        attaches a subordinate clause to a sumti */
+%nonassoc NU_586           /*        abstraction  */
+%nonassoc NUhI_587         /*        marks the start of a termset */
+%nonassoc NUhU_588         /*        marks the middle and end of a termset */
+%nonassoc PEhE_591         /*        afterthought termset connective prefix */
+%nonassoc PU_592           /*        directions in time */
+%nonassoc RAhO_593         /*        flag for modified interpretation of GOhI */
+%nonassoc ROI_594          /*        converts number to extensional tense */
+%nonassoc SA_595           /*        metalinguistic eraser to the beginning of
                                    the current utterance */
-%token SE_596           /*        conversions */
-%token SEI_597          /*        metalinguistic bridi insert marker */
-%token SEhU_598         /*        metalinguistic bridi end marker */
-%token SI_601           /*        metalinguistic single word eraser */
-%token SOI_602          /*        reciprocal sumti marker */
-%token SU_603           /*        metalinguistic eraser of the entire text */
-%token TAhE_604         /*        tense interval properties */
-%token TEI_605          /*        start compound lerfu */
-%token TO_606           /*        left discursive parenthesis */
-%token TOI_607          /*        right discursive parenthesis */
-%token TUhE_610         /*        multiple utterance scope mark */
-%token TUhU_611         /*        multiple utterance end scope mark */
-%token UI_612           /*        attitudinals, observationals, discursives */
-%token VA_613           /*        distance in space-time */
-%token VAU_614          /*        end simple bridi or bridi-tail */
-%token VEhA_615         /*        space-time interval size */
-%token VIhA_616         /*        space-time dimensionality marker */
-%token VUhO_617         /*        glue between logically connected sumti
+%nonassoc SE_596           /*        conversions */
+%nonassoc SEI_597          /*        metalinguistic bridi insert marker */
+%nonassoc SEhU_598         /*        metalinguistic bridi end marker */
+%nonassoc SI_601           /*        metalinguistic single word eraser */
+%nonassoc SOI_602          /*        reciprocal sumti marker */
+%nonassoc SU_603           /*        metalinguistic eraser of the entire text */
+%nonassoc TAhE_604         /*        tense interval properties */
+%nonassoc TEI_605          /*        start compound lerfu */
+%nonassoc TO_606           /*        left discursive parenthesis */
+%nonassoc TOI_607          /*        right discursive parenthesis */
+%nonassoc TUhE_610         /*        multiple utterance scope mark */
+%nonassoc TUhU_611         /*        multiple utterance end scope mark */
+%nonassoc UI_612           /*        attitudinals, observationals, discursives */
+%nonassoc VA_613           /*        distance in space-time */
+%nonassoc VAU_614          /*        end simple bridi or bridi-tail */
+%nonassoc VEhA_615         /*        space-time interval size */
+%nonassoc VIhA_616         /*        space-time dimensionality marker */
+%nonassoc VUhO_617         /*        glue between logically connected sumti
                                     and relative clauses */
-%token XI_618           /*        subscripting operator */
-%token Y_619            /*        hesitation */
-%token ZAhO_621         /*        event properties - inchoative, etc. */
-%token ZEhA_622         /*        time interval size tense */
-%token ZEI_623          /*        lujvo glue */
-%token ZI_624           /*        time distance tense */
-%token ZIhE_625         /*        conjoins relative clauses */
-%token ZO_626           /*        single word metalinguistic quote marker */
-%token ZOI_627          /*        delimited quote marker */
-%token ZOhU_628         /*        prenex terminator (not elidable) */
-
-%token BIhE_650         /*        prefix for high-priority MEX operator */
-%token BOI_651          /*        number or lerfu-string terminator */
-%token FUhA_655         /*        reverse Polish flag */
-%token GAhO_656         /*        open/closed interval markers for BIhI */
-%token JOhI_657         /*        flags an array operand */
-%token KUhE_658         /*        MEX forethought delimiter */
-%token MAI_661          /*        change numbers to utterance ordinals */
-%token MAhO_662         /*        change MEX expressions to MEX operators */
-%token MOI_663          /*        change number to selbri */
-%token MOhE_664         /*        change sumti to operand, inverse of LI */
-%token NAhU_665         /*        change a selbri into an operator */
-%token NIhE_666         /*        change selbri to operand; inverse of MOI */
-%token NUhA_667         /*        change operator to selbri; inverse of MOhE */
-%token PA_672           /*        numbers and numeric punctuation */
-%token PEhO_673         /*        forethought (Polish) flag */
-%token TEhU_675         /*        closing gap for MEX constructs */
-%token VEI_677          /*        left MEX bracket */
-%token VEhO_678         /*        right MEX bracket */
-%token VUhU_679         /*        MEX operator */
-
-%token any_words_697    /*        a string of lexable Lojban words */
-%token any_word_698     /*        any single lexable Lojban words */
-%token anything_699     /*        a possibly unlexable phoneme string */
+%nonassoc XI_618           /*        subscripting operator */
+%nonassoc Y_619            /*        hesitation */
+%nonassoc ZAhO_621         /*        event properties - inchoative, etc. */
+%nonassoc ZEhA_622         /*        time interval size tense */
+%nonassoc ZEI_623          /*        lujvo glue */
+%nonassoc ZI_624           /*        time distance tense */
+%nonassoc ZIhE_625         /*        conjoins relative clauses */
+%nonassoc ZO_626           /*        single word metalinguistic quote marker */
+%nonassoc ZOI_627          /*        delimited quote marker */
+%nonassoc ZOhU_628         /*        prenex terminator (not elidable) */
+
+%nonassoc BIhE_650         /*        prefix for high-priority MEX operator */
+%nonassoc BOI_651          /*        number or lerfu-string terminator */
+%nonassoc FUhA_655         /*        reverse Polish flag */
+%nonassoc GAhO_656         /*        open/closed interval markers for BIhI */
+%nonassoc JOhI_657         /*        flags an array operand */
+%nonassoc KUhE_658         /*        MEX forethought delimiter */
+%nonassoc MAI_661          /*        change numbers to utterance ordinals */
+%nonassoc MAhO_662         /*        change MEX expressions to MEX operators */
+%nonassoc MOI_663          /*        change number to selbri */
+%nonassoc MOhE_664         /*        change sumti to operand, inverse of LI */
+%nonassoc NAhU_665         /*        change a selbri into an operator */
+%nonassoc NIhE_666         /*        change selbri to operand; inverse of MOI */
+%nonassoc NUhA_667         /*        change operator to selbri; inverse of MOhE */
+%nonassoc PA_672           /*        numbers and numeric punctuation */
+%nonassoc PEhO_673         /*        forethought (Polish) flag */
+%nonassoc TEhU_675         /*        closing gap for MEX constructs */
+%nonassoc VEI_677          /*        left MEX bracket */
+%nonassoc VEhO_678         /*        right MEX bracket */
+%nonassoc VUhU_679         /*        MEX operator */
+
+%nonassoc any_words_697    /*        a string of lexable Lojban words */
+%nonassoc any_word_698     /*        any single lexable Lojban words */
+%nonassoc anything_699     /*        a possibly unlexable phoneme string */
 
 
 /* The following tokens are the actual lexer tokens.  The _900 series
@@ -306,32 +315,37 @@
 context of the total grammar.  They are used in the actual parser, where
 the 900 series rules are found in the lexer.  */
 
-%token lexer_A_701      /*        flags a MAI utterance ordinal */
-%token lexer_B_702      /*        flags an EK unless EK_BO, EK_KE */
-%token lexer_C_703      /*        flags an EK_BO */
-%token lexer_D_704      /*        flags an EK_KE */
-%token lexer_E_705      /*        flags a JEK */
-%token lexer_F_706      /*        flags a JOIK */
-%token lexer_G_707      /*        flags a GEK */
-%token lexer_H_708      /*        flags a GUhEK */
-%token lexer_I_709      /*        flags a NAhE_BO */
-%token lexer_J_710      /*        flags a NA_KU */
-%token lexer_K_711      /*        flags an I_BO (option. JOIK/JEK lexer tags)*/
-%token lexer_L_712      /*        flags a PA, unless MAI (then lexer A) */
-%token lexer_M_713      /*        flags a GIhEK_BO */
-%token lexer_N_714      /*        flags a GIhEK_KE */
-%token lexer_O_715      /*        flags a modal operator BAI or compound */
-%token lexer_P_716      /*        flags a GIK */
-%token lexer_Q_717      /*        flags a lerfu_string unless MAI (then lexer_A)*/
-%token lexer_R_718      /*        flags a GIhEK, not BO or KE */
-%token lexer_S_719      /*        flags simple I */
-%token lexer_T_720      /*        flags I_JEK */
-%token lexer_U_721      /*        flags a JEK_BO */
-%token lexer_V_722      /*        flags a JOIK_BO */
-%token lexer_W_723      /*        flags a JOIK_KE */
-/* %token lexer_X_724   /* null */
-%token lexer_Y_725      /*        flags a PA_MOI */
-
+%nonassoc lexer_A_701      /*        flags a MAI utterance ordinal */
+%nonassoc lexer_B_702      /*        flags an EK unless EK_BO, EK_KE */
+%nonassoc lexer_C_703      /*        flags an EK_BO */
+%nonassoc lexer_D_704      /*        flags an EK_KE */
+%nonassoc lexer_E_705      /*        flags a JEK */
+%nonassoc lexer_F_706      /*        flags a JOIK */
+%nonassoc lexer_G_707      /*        flags a GEK */
+%nonassoc lexer_H_708      /*        flags a GUhEK */
+%nonassoc lexer_I_709      /*        flags a NAhE_BO */
+%nonassoc lexer_J_710      /*        flags a NA_KU */
+%nonassoc lexer_K_711      /*        flags an I_BO (option. JOIK/JEK lexer tags)*/
+%nonassoc lexer_L_712      /*        flags a PA, unless MAI (then lexer A) */
+%nonassoc lexer_M_713      /*        flags a GIhEK_BO */
+%nonassoc lexer_N_714      /*        flags a GIhEK_KE */
+%nonassoc lexer_O_715      /*        flags a modal operator BAI or compound */
+%nonassoc lexer_P_716      /*        flags a GIK */
+%nonassoc lexer_Q_717      /*        flags a lerfu_string unless MAI (then lexer_A)*/
+%nonassoc lexer_R_718      /*        flags a GIhEK, not BO or KE */
+%nonassoc lexer_S_719      /*        flags simple I */
+%nonassoc lexer_T_720      /*        flags I_JEK */
+%nonassoc lexer_U_721      /*        flags a JEK_BO */
+%nonassoc lexer_V_722      /*        flags a JOIK_BO */
+%nonassoc lexer_W_723      /*        flags a JOIK_KE */
+/* %nonassoc lexer_X_724   /* null */
+%nonassoc lexer_Y_725      /*        flags a PA_MOI */
+
+
+/* These should probably be changed from being declared with "%token" to being
+ * declared with "%nonassoc" if & when they're implemented.
+ *  -- JTW, 24 Dec 2008
+ */
 
 /*%token lexer_A_905    /*        :  lexer_A_701  utt_ordinal_root_906 */
 /*%token lexer_B_910    /*        :  lexer_B_702  EK_root_911 */
@@ -393,13 +407,13 @@
     potential ambiguity are those which contain NAI.  An indicator cannot be
     inserted in between a token and its negating NAI, else you can't tell
     whether it is the indicator or the original token being negated. */
-                        |  /* empty */
+                        |  /* empty */  %prec shiftPrec
   /* An empty text is legal; formerly this was handled by the explicit
    appearance of FAhO_529, but this is now absorbed by the preparser. */
                         ;
 
 
-paragraphs_4            :  paragraph_10
+paragraphs_4            :  paragraph_10  %prec shiftPrec
                         |  paragraph_10  para_mark_410  paragraphs_4
                         ;
 
@@ -407,24 +421,24 @@
                         |  fragment_20
                         |  paragraph_10  I_819  statement_11
                         |  paragraph_10  I_819  fragment_20
-                        |  paragraph_10  I_819
+                        |  paragraph_10  I_819  %prec shiftPrec
                         /* this last fixes an erroneous start to a sentence,
                            and permits incomplete JOIK_JEK after I, as well
                            in answer to questions on those connectives  */
                         ;
 
-statement_11            :  statement_A_12
-                        |  prenex_30  statement_11
+statement_11            :  statement_A_12  %prec shiftPrec
+                        |  prenex_30  statement_11  %prec shiftPrec
                         ;
 
 statement_A_12          :  statement_B_13
                         |  statement_A_12  I_JEK_820  statement_B_13
-                        |  statement_A_12  I_JEK_820 
+                        |  statement_A_12  I_JEK_820  %prec shiftPrec
                         ;
 
-statement_B_13          :  statement_C_14
+statement_B_13          :  statement_C_14  %prec shiftPrec
                         |  statement_C_14  I_BO_811  statement_B_13
-                        |  statement_C_14  I_BO_811 
+                        |  statement_C_14  I_BO_811   %prec shiftPrec
                         ;
 
 statement_C_14          :  sentence_40
@@ -434,23 +448,23 @@
 
 
 fragment_20             :  EK_802
-                        |  NA_445
+                        |  NA_445  %prec shiftPrec
                         |  GIhEK_818
-                        |  quantifier_300
+                        |  quantifier_300  %prec shiftPrec
                         |  terms_80  VAU_gap_456        /* answer to ma */
                         /* mod_head_490 requires both gap_450 and VAU_gap_456
                            but needs no extra rule to accomplish this */
-                        |  relative_clauses_121
+                        |  relative_clauses_121  %prec shiftPrec
                         |  links_161
                         |  linkargs_160
-                        |  prenex_30
+                        |  prenex_30  %prec shiftPrec
                         ;
 
 
 prenex_30               :  terms_80  ZOhU_492
                         ;
 
-free_modifier_32        :  free_modifier_A_33
+free_modifier_32        :  free_modifier_A_33  %prec shiftPrec
                         |  free_modifier_A_33  free_modifier_32
                         ;
 
@@ -501,7 +515,7 @@
                         ;
 
 
-bridi_tail_50           :  bridi_tail_A_51
+bridi_tail_50           :  bridi_tail_A_51  %prec shiftPrec
                         |  bridi_tail_A_51  GIhEK_KE_814  bridi_tail_50
                                   KEhE_gap_466  tail_terms_71
                         ;
@@ -511,7 +525,7 @@
                            tail_terms_71
                         ;
 
-bridi_tail_B_52         :  bridi_tail_C_53
+bridi_tail_B_52         :  bridi_tail_C_53  %prec shiftPrec
                         |  bridi_tail_C_53  GIhEK_BO_813  bridi_tail_B_52
                            tail_terms_71
                         ;
@@ -531,19 +545,19 @@
                         ;
 
 
-terms_80                :  terms_A_81
-                        |  terms_80  terms_A_81
+terms_80                :  terms_A_81  %prec shiftPrec
+                        |  terms_80  terms_A_81  %prec shiftPrec
                         ;
 
-terms_A_81              :  terms_B_82
-                        |  terms_A_81  PEhE_494  JOIK_JEK_422  terms_B_82
+terms_A_81              :  terms_B_82  %prec shiftPrec
+                        |  terms_A_81  PEhE_494  JOIK_JEK_422  terms_B_82  %prec shiftPrec
                         ;
 
 terms_B_82              :  term_83
                         |  terms_B_82  CEhE_495  term_83
                         ;
 
-term_83                 :  sumti_90
+term_83                 :  sumti_90  %prec shiftPrec
                         |  modifier_84
                         |  term_set_85
                         |  NA_KU_810
@@ -559,11 +573,11 @@
                         ;
 
 
-sumti_90                :  sumti_A_91
-                        |  sumti_A_91  VUhO_497  relative_clauses_121
+sumti_90                :  sumti_A_91  %prec shiftPrec
+                        |  sumti_A_91  VUhO_497  relative_clauses_121  %prec shiftPrec
                         ;
 
-sumti_A_91              :  sumti_B_92
+sumti_A_91              :  sumti_B_92  %prec shiftPrec
                         |  sumti_B_92  EK_KE_804  sumti_90  KEhE_gap_466
                         |  sumti_B_92  JOIK_KE_823  sumti_90  KEhE_gap_466
                         ;
@@ -572,7 +586,7 @@
                         |  sumti_B_92  JOIK_EK_421  sumti_C_93  
                         ;
 
-sumti_C_93              :  sumti_D_94
+sumti_C_93              :  sumti_D_94  %prec shiftPrec
                         |  sumti_D_94  EK_BO_803  sumti_C_93
                         |  sumti_D_94  JOIK_BO_822  sumti_C_93
                         ;
@@ -581,17 +595,17 @@
                         |  GEK_807  sumti_90  GIK_816  sumti_D_94
                         ;
 
-sumti_E_95              :  sumti_F_96
-                        |  sumti_F_96  relative_clauses_121
+sumti_E_95              :  sumti_F_96  %prec shiftPrec
+                        |  sumti_F_96  relative_clauses_121  %prec shiftPrec
                            /* indefinite sumti */
-                        |  quantifier_300  selbri_130  gap_450
+                        |  quantifier_300  selbri_130  gap_450 %prec shiftPrec
                         |  quantifier_300  selbri_130
-                                gap_450  relative_clauses_121
+                                gap_450  relative_clauses_121 %prec shiftPrec
                         ;
 
 sumti_F_96              :  sumti_G_97
                            /* outer-quantified sumti */
-                        |  quantifier_300  sumti_G_97
+                        |  quantifier_300  sumti_G_97  %prec shiftPrec
                         ;
 
 sumti_G_97              :  qualifier_483  sumti_90  LUhU_gap_463
@@ -624,13 +638,13 @@
                         |  sumti_G_97  relative_clauses_121  sumti_tail_A_112
                         ;
 
-sumti_tail_A_112        :  selbri_130
-                        |  selbri_130  relative_clauses_121
+sumti_tail_A_112        :  selbri_130  %prec shiftPrec
+                        |  selbri_130  relative_clauses_121  %prec shiftPrec
                            /* explicit inner quantifier */
-                        |  quantifier_300  selbri_130
+                        |  quantifier_300  selbri_130  %prec shiftPrec
                            /* quantifier both internal to a description,
                               and external to a sumti thereby made specific */
-                        |  quantifier_300  selbri_130  relative_clauses_121
+                        |  quantifier_300  selbri_130  relative_clauses_121  %prec shiftPrec
                         |  quantifier_300  sumti_90
                         ;
 
@@ -651,12 +665,12 @@
                         |  NA_445  selbri_130
                         ;
 
-selbri_B_132            :  selbri_C_133
+selbri_B_132            :  selbri_C_133  %prec shiftPrec
                         |  selbri_C_133  CO_443  selbri_B_132
                         ;
 
-selbri_C_133            :  selbri_D_134
-                        |  selbri_C_133  selbri_D_134
+selbri_C_133            :  selbri_D_134  %prec shiftPrec
+                        |  selbri_C_133  selbri_D_134  %prec shiftPrec
                         ;
 
 selbri_D_134            :  selbri_E_135
@@ -665,12 +679,12 @@
                                 KEhE_gap_466
                         ;
 
-selbri_E_135            :  selbri_F_136
+selbri_E_135            :  selbri_F_136  %prec shiftPrec
                         |  selbri_F_136  JEK_BO_821  selbri_E_135
                         |  selbri_F_136  JOIK_BO_822  selbri_E_135
                         ;
 
-selbri_F_136            :  tanru_unit_150
+selbri_F_136            :  tanru_unit_150  %prec shiftPrec
                         |  tanru_unit_150  BO_479  selbri_F_136
                         |  GUhEK_selbri_137
                         |  NAhE_482  GUhEK_selbri_137
@@ -685,7 +699,7 @@
                         ;
 
 
-tanru_unit_A_151        :  tanru_unit_B_152
+tanru_unit_A_151        :  tanru_unit_B_152  %prec shiftPrec
                         |  tanru_unit_B_152  linkargs_160
                         ;
 
@@ -694,7 +708,7 @@
                         |  SE_480  tanru_unit_B_152
                         |  JAI_478  tag_491  tanru_unit_B_152
                         |  JAI_478  tanru_unit_B_152
-                        |  ME_477  sumti_90  MEhU_gap_465
+                        |  ME_477  sumti_90  MEhU_gap_465  %prec shiftPrec
                         |  ME_477  sumti_90  MEhU_gap_465  MOI_476
                         |  NUhA_475  MEX_operator_374
                         |  NAhE_482  tanru_unit_B_152
@@ -706,7 +720,7 @@
                         |  BE_446  term_83  links_161  BEhO_gap_467
                         ;
 
-links_161               :  BEI_442  term_83
+links_161               :  BEI_442  term_83  %prec shiftPrec
                         |  BEI_442  term_83  links_161
                         ;
 
@@ -730,12 +744,16 @@
 
 MEX_310                 :  MEX_A_311
                         |  MEX_310  operator_370  MEX_A_311
-                        |  FUhA_441  rp_expression_330
+                        /*** |  FUhA_441  rp_expression_330 ***/
+			/* The above rule caused reduce/reduce conflicts and
+			 * had to be replaced by the rule below.
+			 *  -- JTW, 24 Dec 2008 */
+			| FUhA_441  rp_operand_332  %prec shiftPrec
                         ;
 
 /*  Support for right-grouping (short scope) infix expressions with BIhE.  */
 
-MEX_A_311               :  MEX_B_312
+MEX_A_311               :  MEX_B_312  %prec shiftPrec
                         |  MEX_B_312  BIhE_439  operator_370  MEX_A_311
                         ;
 
@@ -756,7 +774,7 @@
     To handle one operand, use a null operand;
     to handle more than two operands, use a null operator.  */
 
-rp_expression_330       :  rp_operand_332  rp_operand_332  operator_370
+rp_expression_330       :  rp_operand_332  rp_operand_332  operator_370  %prec shiftPrec
                         ;
 
 
@@ -773,7 +791,7 @@
                                 KEhE_gap_466
                         ;
 
-operator_A_371          :  operator_B_372
+operator_A_371          :  operator_B_372  %prec shiftPrec
                         |  GUhEK_808  operator_A_371  GIK_816  operator_B_372
                         |  operator_B_372  JOIK_BO_822  operator_A_371
                         |  operator_B_372  JEK_BO_821  operator_A_371
@@ -794,7 +812,7 @@
                         ;
 
 
-operand_381             :  operand_A_382
+operand_381             :  operand_A_382  %prec shiftPrec
                         |  operand_A_382  EK_KE_804  operand_381  KEhE_gap_466
                         |  operand_A_382  JOIK_KE_823  operand_381  KEhE_gap_466
                         ;
@@ -803,7 +821,7 @@
                         |  operand_A_382  JOIK_EK_421  operand_B_383
                         ;
 
-operand_B_383           :  operand_C_385
+operand_B_383           :  operand_C_385  %prec shiftPrec
                         |  operand_C_385  EK_BO_803  operand_B_383
                         |  operand_C_385  JOIK_BO_822  operand_B_383
                         ;
@@ -835,7 +853,7 @@
                         ;
 
 
-cmene_404               :  cmene_A_405
+cmene_404               :  cmene_A_405  %prec shiftPrec
                         |  cmene_A_405  free_modifier_32
                         ;
 
@@ -846,7 +864,7 @@
                         ;
 
 
-bridi_valsi_407         :  bridi_valsi_A_408
+bridi_valsi_407         :  bridi_valsi_A_408  %prec shiftPrec
                         |  bridi_valsi_A_408  free_modifier_32
                         ;
 
@@ -880,7 +898,7 @@
                         ;
 
 DOI_415                 :  DOI_525
-                        |  COI_416
+                        |  COI_416  %prec shiftPrec
                         |  COI_416  DOI_525
                         ;
 
@@ -898,9 +916,9 @@
                         |  JOIK_806  free_modifier_32
                         ;
 
-JOIK_JEK_422            :  JOIK_806
+JOIK_JEK_422            :  JOIK_806  %prec shiftPrec
                         |  JOIK_806  free_modifier_32
-                        |  JEK_805
+                        |  JEK_805  %prec shiftPrec
                         |  JEK_805  free_modifier_32
                         ;
 
@@ -939,7 +957,7 @@
                         |  JOhI_657  free_modifier_32
                         ;
 
-quote_arg_432           :  quote_arg_A_433
+quote_arg_432           :  quote_arg_A_433  %prec shiftPrec
                         |  quote_arg_A_433  free_modifier_32
                         ;
 
@@ -1046,13 +1064,13 @@
 
 
 LIhU_gap_448            :  LIhU_567
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 
 gap_450                 :  KU_556
                         |  KU_556  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 front_gap_451           :  CU_521
@@ -1061,95 +1079,95 @@
 
 MEX_gap_452             :  KUhE_658
                         |  KUhE_658  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 KEI_gap_453             :  KEI_552
                         |  KEI_552  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 TUhU_gap_454            :  TUhU_611
                         |  TUhU_611  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 VAU_gap_456             :  VAU_614
                         |  VAU_614  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 /* redundant to attach a free modifier on the following */
 
 DOhU_gap_457            :  DOhU_526
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 FEhU_gap_458            :  FEhU_531
                         |  FEhU_531  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 SEhU_gap_459            :  SEhU_598
-                        |  error
+                        |  %prec shiftPrec
 /* a free modifier on a discursive should be somewhere within the discursive.
    See SEI_440 */
                         ;
 
 NUhU_gap_460            :  NUhU_588
                         |  NUhU_588  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 
 BOI_gap_461             :  BOI_651
                         |  BOI_651  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 sub_gap_462             :  BOI_651
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 
 LUhU_gap_463            :  LUhU_573
                         |  LUhU_573  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 
 GEhU_gap_464            :  GEhU_538
                         |  GEhU_538  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 
 MEhU_gap_465            :  MEhU_575
                         |  MEhU_575   free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 
 KEhE_gap_466            :  KEhE_550
                         |  KEhE_550  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 
 BEhO_gap_467            :  BEhO_506
                         |  BEhO_506  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 
 TOI_gap_468             :  TOI_607
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 
 KUhO_gap_469            :  KUhO_557
                         |  KUhO_557  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 
@@ -1159,21 +1177,21 @@
 
 right_bracket_gap_471   :  VEhO_678
                         |  VEhO_678  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 LOhO_gap_472            :  LOhO_568
                         |  LOhO_568  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 TEhU_gap_473            :  TEhU_675
                         |  TEhU_675  free_modifier_32
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 right_br_no_free_474    :  VEhO_678
-                        |  error
+                        |  %prec shiftPrec
                         ;
 
 
@@ -1242,7 +1260,7 @@
                         |  LI_566  free_modifier_32
                         ;
 
-mod_head_490            :  tag_491
+mod_head_490            :  tag_491  %prec shiftPrec
                         |  FA_481
                         ;
 
@@ -1287,7 +1305,7 @@
 utterance_ordinal_801   :  lexer_A_905
                         ;
 
-EK_802                  :  lexer_B_910
+EK_802                  :  lexer_B_910  %prec shiftPrec
                         |  lexer_B_910  free_modifier_32
                         ;
 
@@ -1317,11 +1335,11 @@
                         |  lexer_I_945  free_modifier_32
                         ;
 
-NA_KU_810               :  lexer_J_950
+NA_KU_810               :  lexer_J_950  %prec shiftPrec
                         |  lexer_J_950  free_modifier_32
                         ;
 
-I_BO_811                :  lexer_K_955
+I_BO_811                :  lexer_K_955  %prec shiftPrec
                         |  lexer_K_955  free_modifier_32
                         ;
 
@@ -1336,7 +1354,7 @@
                         |  lexer_N_966  free_modifier_32
                         ;
 
-tense_modal_815         :  lexer_O_970
+tense_modal_815         :  lexer_O_970  %prec shiftPrec
                         |  lexer_O_970  free_modifier_32
                         |  FIhO_437  selbri_130  FEhU_gap_458
                         ;
@@ -1349,15 +1367,15 @@
 lerfu_string_817        :  lexer_Q_985
                         ;
 
-GIhEK_818               :  lexer_R_990
+GIhEK_818               :  lexer_R_990  %prec shiftPrec
                         |  lexer_R_990  free_modifier_32
                         ;
 
-I_819                   :  lexer_S_995
+I_819                   :  lexer_S_995  %prec shiftPrec
                         |  lexer_S_995  free_modifier_32
                         ;
 
-I_JEK_820               :  lexer_T_1000
+I_JEK_820               :  lexer_T_1000  %prec shiftPrec
                         |  lexer_T_1000  free_modifier_32
                         ;
 
