var searchIndex = {}; searchIndex["lalr"] = {"doc":"This crate provides data structures for context-free grammars and LR(1) state machines, and an\nalgorithm to convert a context-free grammar into an LR(1) state machine by the LALR(1)\nconstruction.","items":[[3,"Rhs","lalr","The right-hand side of a rule in a context-free grammar.",null,null],[12,"syms","","",0,null],[12,"act","","An action associated with this rule.\nThis can be any data you want to attach to a rule.",0,null],[3,"Item","","An item in an LR(0) state machine, consisting of a rule with a distinguished current position.",null,null],[12,"lhs","","",1,null],[12,"rhs","","",1,null],[12,"pos","","",1,null],[3,"ItemSet","","A set of `Item`s, forming a state in an LR(0) state machine.",null,null],[12,"items","","",2,null],[3,"Grammar","","A context-free grammar.",null,null],[12,"rules","","The rules for each nonterminal.",3,null],[12,"start","","The starting state.\nThere must be exactly one rule of the form "`start` -> N", for some nonterminal N.\n`start` must not be referred to elsewhere in the grammar.",3,null],[3,"LR0StateMachine","","An LR(0) state machine.",null,null],[12,"states","","A vector of states, each of which consists of an item set and a set of transitions.",4,null],[12,"start","","The starting state of the associated context-free grammar.",4,null],[3,"LR1State","","A state in an LR(1) parse table.",null,null],[12,"eof","","The action if the lookahead is EOF.",5,null],[12,"lookahead","","The actions for each non-EOF lookahead.",5,null],[12,"goto","","The state to jump to when shifting a nonterminal (because of a reduce rule).",5,null],[3,"LR1ParseTable","","An LR(1) parse table.",null,null],[12,"states","","",6,null],[4,"Symbol","","A symbol in a context-free grammar.",null,null],[13,"Terminal","","",7,null],[13,"Nonterminal","","",7,null],[4,"LRAction","","An action in an LR(1) parse table.",null,null],[13,"Reduce","","Reduce by the given rule.",8,null],[13,"Shift","","Shift, moving to the given state.",8,null],[13,"Accept","","Accept, ending the parse.",8,null],[4,"LR1Conflict","","A conflict detected while trying to construct an LR(1) parse table.",null,null],[13,"ReduceReduce","","A reduce-reduce conflict.",9,null],[12,"state","lalr::LR1Conflict","The LR(0) state in which the conflict occurs.",9,null],[12,"token","","The token leading to the conflict, or `None` if the token is EOF.",9,null],[12,"r1","","The first conflicting rule.",9,null],[12,"r2","","The second conflicting rule.",9,null],[13,"ShiftReduce","lalr","A shift-reduce conflict.",9,null],[12,"state","lalr::LR1Conflict","The LR(0) state in which the conflict appears.",9,null],[12,"token","","The token leading to the conflict, or `None` if the token is EOF.",9,null],[12,"rule","","The reduce rule involved in the conflict.",9,null],[11,"clone","lalr","",7,null],[11,"eq","","",7,null],[11,"ne","","",7,null],[11,"partial_cmp","","",7,null],[11,"lt","","",7,null],[11,"le","","",7,null],[11,"gt","","",7,null],[11,"ge","","",7,null],[11,"cmp","","",7,null],[11,"fmt","","",7,null],[11,"fmt","","",7,null],[11,"clone","","",0,null],[11,"fmt","","",0,null],[11,"eq","","",0,null],[11,"partial_cmp","","",0,null],[11,"cmp","","",0,null],[11,"fmt","","",1,null],[11,"eq","","",1,null],[11,"partial_cmp","","",1,null],[11,"cmp","","",1,null],[11,"clone","","",1,null],[11,"fmt","","",2,null],[11,"eq","","",2,null],[11,"partial_cmp","","",2,null],[11,"cmp","","",2,null],[11,"clone","","",2,null],[11,"fmt","","",3,null],[11,"fmt","","",4,null],[11,"fmt","","",8,null],[11,"fmt","","",5,null],[11,"fmt","","",6,null],[11,"fmt","","",9,null],[11,"lr0_state_machine","","Create the LR(0) state machine for a grammar.",3,null],[11,"first_sets","","Compute the FIRST sets of the grammar.\nReturns a map from nonterminal to (first set, nullable).",3,null],[11,"follow_sets","","Compute the FOLLOW sets of the grammar.\nReturns a map mapping from nonterminal to (follow set, whether follow set contains EOF)",3,null],[11,"lalr1","","Try to create an LALR(1) parse table out of the grammar.",3,null],[11,"extended_grammar","","Create an LALR(1) extended grammar, as described\n[here](http://web.cs.dal.ca/~sjackson/lalr1.html).",4,null],[11,"print","","Print the state machine in graphviz format.",4,null]],"paths":[[3,"Rhs"],[3,"Item"],[3,"ItemSet"],[3,"Grammar"],[3,"LR0StateMachine"],[3,"LR1State"],[3,"LR1ParseTable"],[4,"Symbol"],[4,"LRAction"],[4,"LR1Conflict"]]}; initSearch(searchIndex);