예제 #1
0
        public Production_Rule(Production_Name _production_name, Whitespace_Sequence _opt_whitespace_sequence_1, Rule_Name_Sequence _rule_name_sequence, Whitespace_Sequence _opt_whitespace_sequence_2, Semi_Colon _semi_colon, Whitespace_Sequence _opt_whitespace_sequence_3)
        {
            production_name           = _production_name;
            opt_whitespace_sequence_1 = _opt_whitespace_sequence_1;
            rule_name_sequence        = _rule_name_sequence;
            opt_whitespace_sequence_2 = _opt_whitespace_sequence_2;
            semi_colon = _semi_colon;
            opt_whitespace_sequence_3 = _opt_whitespace_sequence_3;

            Add(production_name);
            Add(opt_whitespace_sequence_1);
            Add(rule_name_sequence);
            Add(opt_whitespace_sequence_2);
            Add(semi_colon);
            Add(opt_whitespace_sequence_3);

            UpdateProperties("production-rule");
        }
예제 #2
0
        private Production_Name Parse_Production_Name()
        {
            var             _backtrack = _scanResult.CurrentReadIndex;
            Production_Name _self      = null;

            var _Valid_Letter_Sequence = Parse_Valid_Letter_Sequence();;
            var _colon = Parse_Colon();

            if (_Valid_Letter_Sequence != null)
            {
                _self = new Production_Name(_Valid_Letter_Sequence, _colon);
            }
            else
            {
                _self = null;
            }


            UpdateBacktrackIndex(_self, _backtrack);


            return(_self);
        }