Changeset 105:a8659d416de7

Show
Ignore:
Timestamp:
02/17/10 19:55:10 (7 months ago)
Author:
Roger Gammans <rgammans@…>
Children:
106:3ed5f8f4f9fc, 107:0103ceea48af
Branch:
default
Message:

Improve query operator syntax so the grammar can be more recursive.

Files:
2 modified

Legend:

Unmodified
Added
Removed
  • MysteryMachine/parsetools/grammar.py

    r103 r105  
    1818notequalsOp=   Literal("!=") 
    1919 
     20#Characters to avoid ?,:,/,!,= (eg other literals) 
    2021identifier =   Word("_" + alphas + nums) 
    2122objectName =   identifier.copy() 
     
    3940 
    4041    BoolExpr   =    ExprField + cfoperator + Value.copy()  
    41     QueryExpr  =    BoolExpr + queryOp + Value.copy() + seperator +Value.copy() 
     42    QueryExpr  =    BoolExpr + queryOp + Value.copy() + "/" +Value.copy() 
    4243 
    4344    ExprText   =    ExprField ^ \ 
  • tests/grammarTest.py

    r102 r105  
    8989        self.assertEqual(repr(helper(self.parserA,"Object:1")) , "Object:1" ) 
    9090 
     91    def testQueryOp(self): 
     92        self.assertEqual(helper(self.parserA,":name=\"TestName\"?\"Yes\"/\"No\""),"Yes") 
     93        self.assertEqual(helper(self.parserA,":name=\"WrongName\"?\":Yes\"/\"No\""),"No") 
     94 
    9195    # Test handling of parse errors. 
    9296def getTestNames():