Next in thread →
Next in month →
Re: [xml-dev] Many different syntaxes in XML - is that good language design?
> Phew! That is a lot of different syntaxes.
>
> Is that good language design to have so many different syntaxes?
>
> Dealing with lots of different syntaxes is hard.
>
> Is that good language design to have so many different syntaxes?
>
> Dealing with lots of different syntaxes is hard.
In 2008 I implemented a generic LR-1 parser in XSLT. It uses the XML representation of a set of parsing tables for a given LR-1 grammar. The parsing tables are generated by YACC (with a function I added to YACC's output generator).
The lexer also would use a set of monstrous-looking RegEx expressions for the terminal symbols of the specific language.
So any complaints of having to deal with a few languages that we know about in advance, fade in comparison with this LR-1 parser, written in XSLT, which (the XSLT) is actually an XML document, that uses the parsing tables of any possible (and unknown in advance) LR-1 languages and itself generates an abstract tree (in XML, of course), representing the parse.
For the case when the language to be parsed happens to be XPath 2.0:
https://github.com/dnovatchev/FXSL-XSLT2/blob/master/newWork/func-lrParse.xsl
https://github.com/dnovatchev/FXSL-XSLT2/blob/master/newWork/XPATH-Grammar.y
https://github.com/dnovatchev/FXSL-XSLT2/blob/master/newWork/XPATH-ParseTables.xml
https://github.com/dnovatchev/FXSL-XSLT2/blob/master/newWork/XPathParse1.xsl
And this is example of invoking this parser to parse one (the first) of many possible XPath expressions contained in this transformation:
https://github.com/dnovatchev/FXSL-XSLT2/blob/master/newWork/XPathParse1.xsl
Just invoke this transformation on any XML document (not used) such as <t />
So any complaints of having to deal with a few languages that we know about in advance, fade in comparison with this LR-1 parser, written in XSLT, which (the XSLT) is actually an XML document, that uses the parsing tables of any possible (and unknown in advance) LR-1 languages and itself generates an abstract tree (in XML, of course), representing the parse.
For the case when the language to be parsed happens to be XPath 2.0:
https://github.com/dnovatchev/FXSL-XSLT2/blob/master/newWork/func-lrParse.xsl
https://github.com/dnovatchev/FXSL-XSLT2/blob/master/newWork/XPATH-Grammar.y
https://github.com/dnovatchev/FXSL-XSLT2/blob/master/newWork/XPATH-ParseTables.xml
https://github.com/dnovatchev/FXSL-XSLT2/blob/master/newWork/XPathParse1.xsl
And this is example of invoking this parser to parse one (the first) of many possible XPath expressions contained in this transformation:
https://github.com/dnovatchev/FXSL-XSLT2/blob/master/newWork/XPathParse1.xsl
Just invoke this transformation on any XML document (not used) such as <t />
Cheers,
Dimitre
On Mon, Mar 7, 2022 at 4:14 AM Roger L Costello <[email protected]> wrote:
Hi Folks,
There are many different syntaxes in XML:
The comment syntax: <!-- ... -->
The PI syntax: <? ... ?>
The CDATA section syntax: <![CDATA[ ... ]>
The DOCTYPE syntax: <!DOCTYPE ... >
The entity syntaxes: & and   and  
The namespace syntax: xmlns:foo="..." and <foo:bar>...</foo:bar>
Attribute/value syntax: x="blah"
The start-tag/end-tag syntax:
<baz>
<widget>...</widget>
</baz>
Phew! That is a lot of different syntaxes.
Is that good language design to have so many different syntaxes?
Dealing with lots of different syntaxes is hard. For example, I never remember the syntax for CDATA sections (in fact, I had to look it up just now).
Isn't it better language design to have a small number of syntaxes?
/Roger
_______________________________________________________________________
XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.
[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
Or unsubscribe: [email protected]
subscribe: [email protected]
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what you're doing is work or play
-------------------------------------
To achieve the impossible dream, try going to sleep.
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all patents, too? :)
-------------------------------------
Sanity is madness put to good use.
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.
Next in thread →
Next in month →