Previous page Next page Bottom Top One level up Home
Home > Directory > Computers > Programming > Compilers > Lexer and Parser Generators

Lexer and Parser Generators

Webpages concerning "Lexer and Parser Generators"

1-50 [51-54]
Ragel compiles finite state machines from regular languages into executable C/C++/Objective-C code.
http://www.elude.ca/ragel/
Keywords:
compile, finite, state, machine, FSM, DFA, NFA, regular, lanuage, compiler, concatenation, union, kleen, kleene, star

http://www.elude.ca/ragel/

IDE for the analysis, extraction and conversion of texts. A parser generator, a debugger and a simple c++ interpreter are combined to a visual devellopment environment, which analyzes, evaluates, converts etc. texts directly or outputs a c++ parser class.
http://texttransformer.com
Keywords:
parsergenerator, parser generator, IDE, parsing, transform text, text transformation, awk, gawk, code instrumenter, code instrumentation, c++, interpreter, programming, text processing, shareware, parser, scanner, debugger, skip, transformation, text, conversion, translation, regular expression, reengineering, refactoring, boost, tetra, compiler compiler, code generation

http://texttransformer.com

ClearParse is the fast, flexible parsing solution. It's a flexible parser engine that can be used for any parsing task including interpreting or compiling programming languages, analyzing or converting data files, processing command line parameters and user input, implementing markup languages and scripts, natural language processing (NLP), and more.
http://www.clearjump.com/products/ClearParse.html
Keywords:
ClearParse, clear parse, parser, parsing, engine, parsing engine, ClearJump, clear jump, ActiveX, software, SDK, component, components, interface, interfaces, script, compiling, compiler, natural language processing, NLP, interpreter, interpreting

http://www.clearjump.com/products/ClearParse.html

SLK is an LL(k) parser generator for C C++ Java and C# with emphasis on simplicity, compactness and speed.
http://home.earthlink.net/~slkpg/
Keywords:
LL(k) parser generator, top-down parsing, C#, Java, C++, C, fast, efficient, slk, C, C++, C#, Java, parser, generator, parser consultant, parsing consultant, custom parsers, custom translators, parser source code

http://home.earthlink.net/~slkpg/

The world's largest development and download repository of Open Source code and applications
http://sourceforge.net/projects/jb2csharp/
Keywords:
Open Source, Development, Developers, Projects, Downloads, OSTG, VA Software, SF.net, SourceForge

http://sourceforge.net/projects/jb2csharp/

AnaGram has powerful visual features; designed for ease of use. Produces highly configurable C/C++ parsers for use on any platform; runs under Windows
http://www.parsifalsoft.com/
Keywords:
parsing, parse, parsing tool, LALR, DSL, syntax, software development, parsing software, language, grammar, lexer, interpreter, script, script language, little language, abstract syntax tree, lexical analysis, context free grammar, domain specific language, lalr1, lalr-1 parser generator, lex, yacc, flex, bison, software engineering, compiler tool, software, program, computer, Windows, NT, ...

http://www.parsifalsoft.com/

LLOOP is a modern, powerful and user-friendly parser generator accessible and intended to any C++ developer. It provides many innovative features which make it suitable for addressing most parsing issues commonly or likely to be encountered by developers. In the same time, it helps reducing dramatically the necessary skills and efforts to support these operations, regardless of the development env...
http://www.ersa-france.com/lloop/
Keywords:
LLOOP, object-oriented, parser, generator, parsers, generator, LL, C++, top-down, top, down, modern, powerful, stream, parsing, syntax, analysis, syntactical, parse, tree, LR, LALR, descent, parser, generator, BNF, EBNF, grammar, non-terminal, non, terminal, class, generated, class, source, code, generation, generated, source, code, token, pre-processor, intuitive, integration, import, wide, ...

http://www.ersa-france.com/lloop/

Pattern matching
http://www.dmitry-kazakov.de/match/match.htm
Keywords:
pattern, match, pattern matching, C, C++, ada, grep, snobol4, windows, windows NT, UNIX, linux

http://www.dmitry-kazakov.de/match/match.htm

Styx is a scanner / parser generator designed to address some shortcomings of the traditional lex/yacc combination. It has unique features like automatic derivation of depth grammar, production of the derivation tree including it's C interface which provides access to the abstract syntax tree, preservation of full source information and pretty printing to faciliate source-source translation, persi...
http://www.speculate.de/styx/
Keywords:
Parser Generator, Scanner Generator, Compiler Compiler, Parser, Scanner, Lexer, Compiler, Interpreter, LR Parser, LALR Parser, Generator, Abstract Syntax Tree

http://www.speculate.de/styx/

http://www.thinkage.ca/english/products/product-yay.shtml
Keywords:
Thinkage, Software, Tools, C, Compiler, UWTOOLS, MAPI, Address, Book, Parser, Generators, YAY, CWithin, Within, WINYAY

http://www.thinkage.ca/english/products/product-yay.shtml

TPG : Toy Parser Generator
http://christophe.delord.free.fr/en/tpg/
Keywords:
TPG, Toy, Parser, Generator, lexical, syntactic, parser, analyseur, syntaxique, Python, YACC, ANTLR, grammar, attributed, grammaire, attribuée, récursive, descendante, recursive, descendant, arbre, abstrait, tree, abstract, JavaCC, download, téléchargement, license, installation, tutorial, rule, règle, parsing, analyse, scanning

http://christophe.delord.free.fr/en/tpg/

Computer Advance
http://www.ComputerAdvance.tk
Keywords:
2d, chat, free, freeware, hosting, programming, software

http://www.ComputerAdvance.tk

GOLD Parser, Grammar Oriented Language Developer, free parser generator, multiple programming language parsing system
http://www.devincook.com/goldparser/
Keywords:
parser generator, free, GOLD, YACC, yacc, lex, developer, visual basic, VB, C, C++, source, code

http://www.devincook.com/goldparser/

A tutorial in Lex and Yacc
http://epaperpress.com/lexandyacc/index.html
Keywords:
Lex, Yacc, tutorial, compiler, interpreter, bison, flex

http://epaperpress.com/lexandyacc/index.html

The SYNTAX System
http://www-rocq.inria.fr/oscar/www/syntax/syntax-eng.htm
Keywords:
index

http://www-rocq.inria.fr/oscar/www/syntax/syntax-eng.htm

Replacement TP Lex/Yacc library and templates for Delphi compatibility.
http://www.17slon.com/gp/gp/tply.htm
Keywords:
Windows, freeware, Delphi, programming, component, components, unit, units, expert, experts, lex, yacc, Pascal

http://www.17slon.com/gp/gp/tply.htm

http://cppcc.sourceforge.net/

http://cppcc.sourceforge.net/

http://www.cwi.nl/projects/MetaEnv/sglr/

http://www.cwi.nl/projects/MetaEnv/sglr/

Yet-another Object-Oriented Lex (YooLex)
http://yoolex.sourceforge.net/
Keywords:
YooLex, Flex, Lex, Code Generator, Compiler, Scanner

http://yoolex.sourceforge.net/

Lex, Yacc, Flex, Bison: Overview, Documentation, Tools, Pointers
http://dinosaur.compilertools.net/
Keywords:
lex, yacc, flex, bison, compiler, tools, parser generator, scanner generator, manual, documentation, tutorial, download

http://dinosaur.compilertools.net/

http://developer.berlios.de/projects/soul/

http://developer.berlios.de/projects/soul/

http://www.gnu.org/software/bison/
Keywords:
bison

http://www.gnu.org/software/bison/

http://spirit.sourceforge.net/

http://spirit.sourceforge.net/

http://www.geocities.com/ymotiwala//flex.html

http://www.geocities.com/ymotiwala//flex.html

http://www.ssw.uni-linz.ac.at/Research/Projects/Compiler.html

http://www.ssw.uni-linz.ac.at/Research/Projects/Compiler.html

http://www.cs.berkeley.edu/~smcpeak/elkhound/

http://www.cs.berkeley.edu/~smcpeak/elkhound/

http://www.gnu.org/software/flex/
Keywords:
flex

http://www.gnu.org/software/flex/

http://www.nongnu.org/grammatica/

http://www.nongnu.org/grammatica/

http://www.cs.vu.nl/~ceriel/LLgen.html

http://www.cs.vu.nl/~ceriel/LLgen.html

http://www.programmar.com/main.shtml

http://www.programmar.com/main.shtml

Parsetec LRgen 6.0 - LALR Parser Generator, LALR Lexer Generator, SLR Parser Generator, Reads TBNF & EBNF Grammar Notation, 4MPT: 4 Matrix Parser Tables, Compiler Construction Tool, Parsing Technology, LALR Research, Autom, BNF, Lex, YACC, Flex, Bison, Antlr.
http://parsetec.com/lrgen

http://parsetec.com/lrgen

http://re2c.org

http://re2c.org

http://www.musikwissenschaft.uni-mainz.de/~ag/tply/

http://www.musikwissenschaft.uni-mainz.de/~ag/tply/

http://home.planet.nl/~faase009/MM.html

http://home.planet.nl/~faase009/MM.html

http://www.sand-stone.com/

http://www.sand-stone.com/

http://www.is.titech.ac.jp/~sassa/lab/rie-e.html

http://www.is.titech.ac.jp/~sassa/lab/rie-e.html

http://www.math.tu-dresden.de/wir/depot4/

http://www.math.tu-dresden.de/wir/depot4/

http://www.gradsoft.com.ua/eng/Products/YaYacc/yayacc.html

http://www.gradsoft.com.ua/eng/Products/YaYacc/yayacc.html

http://hapy.sourceforge.net/

http://hapy.sourceforge.net/

http://www.dcs.rhbnc.ac.uk/research/languages/projects/rdp.shtml

http://www.dcs.rhbnc.ac.uk/research/languages/projects/rdp.shtml

http://www.cs.princeton.edu/software/iburg/

http://www.cs.princeton.edu/software/iburg/

http://www.vendian.org/mncharity/dir3/btyacc/

http://www.vendian.org/mncharity/dir3/btyacc/

http://www.informatik.uni-osnabrueck.de/alumni/bernd/jay/

http://www.informatik.uni-osnabrueck.de/alumni/bernd/jay/

http://www.monmouth.com/~wstreett/lex-yacc/lex-yacc.html

http://www.monmouth.com/~wstreett/lex-yacc/lex-yacc.html

http://www.inf.uos.de/alumni/bernd/oolex/

http://www.inf.uos.de/alumni/bernd/oolex/

http://www.inf.uos.de/alumni/bernd/oops/

http://www.inf.uos.de/alumni/bernd/oops/

1-50 [51-54]
Help building the largest human-edited directory of the web
Suggest URL - Open Directory Project - Become an editor
directopedia.org uses links and structure from dmoz Open Directory Project.
The contents has been generating using technology developed by scientec.

Wikipedia-Article "Lexer"

A diagram of the operation of a typical multi-language compiler.
Enlarge
A diagram of the operation of a typical multi-language compiler.

Lexical analysis is the process of taking an input string of characters (such as the source code of a computer program) and producing a sequence of symbols called "lexical tokens", or just "tokens", which may be handled more easily by a parser.

A lexical analyzer, or lexer for short, typically has two stages. The first stage is called the scanner and is usually based on a finite state machine. It reads through the input one character at a time, changing states based on what characters it encounters. If it lands on an accepting state, it takes note of the type and position of the acceptance, and continues. Eventually it lands on a "dead state", which is a non-accepting state that goes only to itself on all characters. When the lexical analyzer lands on the dead state, it is done; it goes back to the last accepting state, and thus has the type and length of the longest valid lexeme.

A lexeme, however, is only a string of characters known to be of a certain type. In order to construct a token, the lexical analyzer needs a second stage. This stage, the evaluator, goes over the characters of the lexeme to produce a value. The lexeme's type combined with its value is what properly constitutes a token, which can be given to a parser. (Some tokens such as parentheses do not really have values, and so the evaluator function for these can return nothing. The evaluators for integers, identifiers, and strings can be considerably more complex. Sometimes evaluators can suppress a lexeme entirely, concealing it from the parser, which is useful for whitespace and comments.)

For example, in the source code of a computer program the string

net_worth_future = (assets - liabilities);

might be converted (with whitespace suppressed) into the lexical token stream:

NAME "net_worth_future" 
EQUALS 
OPEN_PARENTHESIS 
NAME "assets" 
MINUS 
NAME "liabilities" 
CLOSE_PARENTHESIS 
SEMICOLON

Lexical analysis makes writing a parser much easier. Instead of having to build up names such as "net_worth_future" from their individual characters, the parser can start with tokens and concern itself only with syntactical matters. This leads to efficiency of programming, if not efficiency of execution. However, since the lexical analyzer is the subsystem that must examine every single character of the input, it can be a compute-intensive step whose performance is critical, such as when used in a compiler.

Though it is possible and sometimes necessary to write a lexer by hand, lexers are often generated by automated tools. These tools accept regular expressions that describe the tokens allowed in the input stream. Each regular expression is associated with a phrase in a programming language that evaluates the lexemes matching the regular expression. The tool then constructs a state table for the appropriate finite state machine and creates program code that contains the table, the evaluation phrases, and a routine that uses them appropriately.

Regular expressions compactly represent patterns that the characters in lexemes might follow. For example, a NAME token might be any alphabetical character or an underscore, followed by any number of instances of any alphanumeric character or an underscore. This could be represented compactly by the string [a-zA-Z_][a-zA-Z_0-9]*. This means "any character a-z, A-Z or _, then 0 or more of a-z, A-Z, _ or 0-9".

Regular expressions and the finite state machines they generate are not capable of handling recursive patterns, such as "n opening parentheses, followed by a statement, followed by n closing parentheses." They are not capable of keeping count, and verifying that n is the same on both sides -- unless you have a finite set of permissible values for n. It takes a full-fledged parser to recognize such patterns in their full generality. A parser can push parentheses on a stack and then try to pop them off and see if the stack is empty at the end.

The Lex programming tool and its compiler is designed to generate code for fast lexical analysers based on a formal description of the lexical syntax. It is not generally considered sufficient for applications with a complicated set of lexical rules and severe performance requirements; for instance, the GNU Compiler Collection uses hand-written lexers.

External links

This article is based on the article "Lexer" from Wikipedia - the free encyclopedia created and edited by online user community. This article is distributed under the terms of GNU Free Documentation License. Here you find the list of authors of this article. The article can only edited within Wikipedia. Edit this article in Wikipedia.