Re: Many different syntaxes in XML - is that good language design?
Dimitre Novatchev <[email protected]>
| Newsgroups | gmane.text.xml.devel |
|---|---|
| Message-ID | <CAK4KnZcYX008CO0utVgz43Nj_YTaZUsk_20xmT_Om+We1etK_A@mail.gmail.com> |
> 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. 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 /> 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.