在解析期间替换变量 - pyparsing

时间:2017-01-04 16:16:41

标签: python pyparsing

假设我有一些简化的表达式如下

(3 + 7 + (x + 5))

有没有办法使用pyparsing我可以评估表达式,在运行时通知x是一个需要被外表达式替换的变量? 所以基本上3 + 7被评估为10,x是一个被10替换的变量,因此最终的表达式将是

(3 + 7 + (10 + 5)) 

我知道x在运行前是10。

变量将始终在其上方具有“父”以进行替换。我真的不确定从哪里开始寻找。

我想我的问题是:

  1. pyparsing是否允许这样的事情?
  2. 如果不是python中有解析库吗?
  3. 我最好为这个问题构建我自己的解析器,我可以实现一个peek()或next()方法来允许我处理这个,因为我递归
  4. 任何开始使用的提示或文档都会很棒。

    修改 对不起,如果我引导人们走错方向或引起混乱,我试图过度简化我的问题。我会尝试扩展更多,但它变得复杂,因为它背后会有相当多的编码。

    说我有以下词典:

    prices_by_day = {
      'monday' : [
        {'name' : 'apple', 'price' : 0.99},
        {'name' : 'orange', 'price': 1.99}
      ],
      'tuesday': [
        {'name' : 'apple', 'price' : 0.50},
        {'name' : 'orange', 'price': 0.80}
      ]
    }
    

    我希望能够做的是写一个表达式来获取星期一的苹果价格,然后找到所有低于周二价格的商品。 问题是,我不会总是知道星期一苹果的价格或价格可能会改变,但我希望能够在我知道后将其传递给表达式 像

    这样的东西
     get(price of apples monday) and 
     get(price of all tuesday array objects < ${PREVIOUSLY_EVALUAED_PRICE_OF_APPLES})
    

    我希望这有助于解释更多,并没有让它更令人困惑。

0 个答案:

没有答案
相关问题