Esempio n. 1
0
        }//method

        private void ApplyHints()
        {
            foreach (var state in _data.States)
            {
                var stateData = state.BuilderData;
                //Add automatic precedence hints
                if (stateData.Conflicts.Count > 0)
                {
                    foreach (var conflict in stateData.Conflicts.ToList())
                    {
                        if (conflict.Flags.IsSet(TermFlags.IsOperator))
                        {
                            //Find any reduce item with this lookahead and add PrecedenceHint
                            var reduceItem = stateData.ReduceItems.SelectByLookahead(conflict).First();
                            var precHint   = new PrecedenceHint();
                            reduceItem.Core.Hints.Add(precHint);
                        }
                    }
                }
                // Apply (activate) hints - these should resolve conflicts as well
                foreach (var item in state.BuilderData.AllItems)
                {
                    foreach (var hint in item.Core.Hints)
                    {
                        hint.Apply(_language, item);
                    }
                }
            } //foreach
        }     //method
Esempio n. 2
0
        private void ApplyHints()
        {
            foreach (var state in _data.States) {
            var stateData = state.BuilderData;
            //Add automatic precedence hints
            if (stateData.Conflicts.Count > 0)
              foreach (var conflict in stateData.Conflicts.ToList())
            if (conflict.Flags.IsSet(TermFlags.IsOperator)) {
              //Find any reduce item with this lookahead and add PrecedenceHint
              var reduceItem = stateData.ReduceItems.SelectByLookahead(conflict).First();
              var precHint = new PrecedenceHint();
              reduceItem.Core.Hints.Add(precHint);
            }
            // Apply (activate) hints - these should resolve conflicts as well
            foreach (var item in state.BuilderData.AllItems)
              foreach (var hint in item.Core.Hints)
            hint.Apply(_language, item);

              }//foreach
        }