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++, 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 comp ...
and the
Lex programming tool in that it is a syntax-directed driver; one could establish the analogies Yacc:
LR(1) 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. ...
.
The implementation is in
Perl
Perl is a family of two High-level programming language, high-level, General-purpose programming language, general-purpose, Interpreter (computing), interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it ...
. 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 tog ...
.
External links
FleXML home page
XML-based standards
{{compu-lang-stub