Subject: Re: Implementing Equality Expressions... From: James Clark <jjc@xxxxxxxxxx> Date: Sat, 02 Jan 1999 09:09:01 +0700 |
I don't understand exactly what the problem you're having is, but there are a couple of tricks you can use to parse And/Or expressions: - one is to keep some state in the lexer; this is the way the spec does it: "An OperatorName token is recognized only when there is a preceding token and the preceding token is not one of @, /, |, (, [ or an OperatorName." - the other is to parse a BooleanExpr as if it were BooleanExpr ::= BooleanPrimaryExpr (Name BooleanPrimaryExpr)* and then check separately that each Name is either "and" or "or" and are not mixed in a BooleanExpr (this is what I do in XT)/ Tyler Baker wrote: > > In the XSL Spec Boolean Expressions are defined as follows... > > BooleanExpr ::= AndExpr | OrExpr | BooleanPrimaryExpr > BooleanPrimaryExpr ::= BooleanGroupExpr | NotExpr | PositionalExpr | > TestExpr | EqualityExpr > > When trying to parse an equality expression directly, I have found that > it is very difficult to separate the SelectExpression from the Literal > when and expressions or or expressions are also present. > > The algorithm I use is basically is to find the first '=' that is not in > a nested expression "anything inside '(' and ')'" and not inside a > literal. The problem arises is that if you encounter an "and" or an > "or" then you will Part of the sentence seems to be missing. James XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: Implementing Equality Expressio, James Clark | Thread | Re: Implementing Equality Expressio, Tyler Baker |
Re: Implementing Equality Expressio, eduardo.gutentag | Date | New XT release, James Clark |
Month |