OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

relax-ng message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Re: Alternative algorithm to restrict use of data/string in patterns.



> If we consider the three states to be ordered:
> 
> element < anyString < text
> 
> Then the "OR" operation is just max. Right?

Exactly. max is probably intuitive and more understandable.
I started this algorithm with two states (element as false and text as
true). That's why OR is used.



> Would another way to do it be to have calcFPDS just take s single argument
> and for group to do
> 
> if (p is <group>p1 p2</group>) {
>    if (isNullable(p1))
>       return calcFPDS(p1) || calcFPDS(p2);
>    else
>       return calcFPDS(p1);
> }
> 
> where isNullable(p) checks whether p can match the empty sequence (and any
> atts)?

No. Firstly, there are two patterns that needs the second fpds parameter.

    if(p is "<attribute />")
      return fpds

    if( p is <empty/> )
      return fpds

Secondly, in case of <group> p1 p2 </group>, p2 may also be nullable
(AKA epsilon-reducible). In that case, we still need the second
parameter.


--
Kohsuke KAWAGUCHI                          +1 650 786 0721
Sun Microsystems                   kohsuke.kawaguchi@eng.sun.com



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC