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); }
/// <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); } }