Re: [xml-dev] regular expressions

From
David Tolpin <>
To
Date
2004-01-30T06:26:07Z
ID
<>
Thread
Re: [xml-dev] regular expressions
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