FleXML is an
XML transformation language
An XML transformation language is a programming language designed specifically to transform an ''input'' XML document into an ''output'' document which satisfies some specific goal.
There are two special cases of transformation:
* XML to XML: ...
originally developed by Kristofer Rose. It allows a programmer to specify actions in
C programming language
''The C Programming Language'' (sometimes termed ''K&R'', after its authors' initials) is a computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom originally designed and implemented the language, as well as ...
or
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
, and associate those actions with element definitions in an XML
DTD. It is similar in philosophy to
Yacc
Yacc (Yet Another Compiler-Compiler) is a computer program for the Unix operating system developed by Stephen C. Johnson. It is a Look Ahead Left-to-Right Rightmost Derivation (LALR) parser generator, generating a LALR parser (the part of a com ...
and the
Lex programming tool
Lex is a computer program that generates lexical analyzers ("scanners" or "lexers").
Lex is commonly used with the yacc parser generator. Lex, originally written by Mike Lesk and Eric Schmidt and described in 1975, is the standard lexical analyze ...
in that it is a syntax-directed driver; one could establish the analogies Yacc:
LR(1) In computer science, a canonical LR parser or LR(1) parser is an LR(k) parser for ''k=1'', i.e. with a single lookahead terminal. The special attribute of this parser is that any LR(k) grammar with ''k>1'' can be transformed into an LR(1) grammar. ...
grammar::Lex:
Regular grammar
In theoretical computer science and formal language theory, a regular grammar is a grammar that is ''right-regular'' or ''left-regular''.
While their exact definition varies from textbook to textbook, they all require that
* all production rules ...
::FleXML::
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
.
The implementation is in
Perl
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offici ...
. A programmer supplied action file is input to FleXML; the output is a file suitable for input to
Flex lexical analyser
Flex (fast lexical analyzer generator) is a free and open-source software alternative to lex.
It is a computer program that generates lexical analyzers (also known as "scanners" or "lexers").
It is frequently used as the lex implementation togeth ...
.
External links
FleXML home page
XML-based standards
{{compu-lang-stub