Exemple #1
0
        private void InitBasisBladeParser()
        {
            bool UNARY = true, BINARY = false;
            bool PREFIX = false;
            bool LEFT_ASSOCIATIVE = true, RIGHT_ASSOCIATIVE = false;

            G25.rsep.Operator[] ops = new G25.rsep.Operator[] {
                // symbol, name, precedence, unary, postfix, left associative
                new G25.rsep.Operator(" ", "concat", 4, BINARY, PREFIX, RIGHT_ASSOCIATIVE),
                new G25.rsep.Operator("=", "assign", 3, BINARY, PREFIX, RIGHT_ASSOCIATIVE),
                new G25.rsep.Operator("^", "op", 2, BINARY, PREFIX, LEFT_ASSOCIATIVE),
                new G25.rsep.Operator("-", "negate", 1, UNARY, PREFIX, LEFT_ASSOCIATIVE),
                new G25.rsep.Operator("+", "nop", 0, UNARY, PREFIX, LEFT_ASSOCIATIVE),
            };
            m_basisBladeParser = new G25.rsep(ops);
        }
Exemple #2
0
        /// <summary>
        /// Called by constructors; allocates empty arrays for metric info.
        /// Also initializes parser for metric 
        /// </summary>
        private void InitMetric()
        {
            // init list of metrics and add default metric
            m_metric = new List<Metric>();
            m_metric.Add(new Metric("default"));

            { // initialize parser
                bool UNARY = true, BINARY = false;
                bool PREFIX = false;
                bool LEFT_ASSOCIATIVE = true, RIGHT_ASSOCIATIVE = false;
                G25.rsep.Operator[] ops = new G25.rsep.Operator[] {
                    // symbol, name, precedence, unary, postfix, left associative
                    new G25.rsep.Operator("-", "negate", 0, UNARY, PREFIX, LEFT_ASSOCIATIVE),
                    new G25.rsep.Operator("+", "nop", 0, UNARY, PREFIX, LEFT_ASSOCIATIVE), // unary + is a nop
                    new G25.rsep.Operator(".", "ip", 1, BINARY, PREFIX, LEFT_ASSOCIATIVE),
                    new G25.rsep.Operator("=", "assign", 2, BINARY, PREFIX, RIGHT_ASSOCIATIVE)
                };
                m_metricParser = new G25.rsep(ops);
            }
        }
Exemple #3
0
 private void InitBasisBladeParser()
 {
     bool UNARY = true, BINARY = false;
     bool PREFIX = false;
     bool LEFT_ASSOCIATIVE = true, RIGHT_ASSOCIATIVE = false;
     G25.rsep.Operator[] ops = new G25.rsep.Operator[] {
         // symbol, name, precedence, unary, postfix, left associative
         new G25.rsep.Operator(" ", "concat", 4, BINARY, PREFIX, RIGHT_ASSOCIATIVE),
         new G25.rsep.Operator("=", "assign", 3, BINARY, PREFIX, RIGHT_ASSOCIATIVE),
         new G25.rsep.Operator("^", "op", 2, BINARY, PREFIX, LEFT_ASSOCIATIVE),
         new G25.rsep.Operator("-", "negate", 1, UNARY, PREFIX, LEFT_ASSOCIATIVE),
         new G25.rsep.Operator("+", "nop", 0, UNARY, PREFIX, LEFT_ASSOCIATIVE),
     };
     m_basisBladeParser = new G25.rsep(ops);
 }