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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] regular expressions

[ Lists Home | Date Index | Thread Index ]

Bob Foster:
>  > Why isn't it done?
> 
> Good question. It should be. Of course, the notation suggests to most 
> compsci people that recursion will be permitted, i.e., that this is a 
> context-free instead of regular grammar, and that's probably not what 
> you intended.

The technique to detect recursions and stop context-grammars early is

 (resolve
   (lambda (piece)
     (cond
       ((string? piece) piece)
       ((symbol? piece)
	 (let ((entry (assv piece code)))
	   (if entry
	      (apply string-append (map resolve (cdr entry)))
	      (begin (error! piece " unresolved") ""))))))))

that is, just concatenate. If there is a recursion, the Scheme interpreter
will run out of space and the validator will immediately report an error
in the expression.

David




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS