This paper, "Disambiguation Filters for Scannerless Generalized LR Parsers," is about a systematic way of dealing with the problem of parsing with ambiguous grammars. I thought this paper was wonderful. Sure it has some flaws, but I think it and all the SGLR papers should be required reading by all faculty who teach compilers and all graduate students who will someday teach compilers. Why? Because SGLR represents so many advantages over the lex+yacc or hand-coded lexer+parser models that the only compelling reason that I can think of to not teach SGLR is, as Homer Simpson would say, "It's a good idea, but it's a new idea, and, therefore, I fear it and must reject it." (OK, it does have one disadvantage that is serious, speed, but that's not enough of a concern to eliminate it from all compiler jobs.) So, what's SGLR? It's a system of handling all lexical and parsing concerns within a unified Generalized LR parser. This unified system has advantages galore, which are well-described in the paper. Because it uses GLR parsing technology it allows ambiguous grammars. This paper describes 4 mechanisms that allow for declarative disambiguation of the resulting parses. All four are well described and carefully analyzed.
> Ik ben een beetje in verwarring geraakt over lexicale versus context-vrije > restricties in SDF(2). > > - is er wel verschil? > - zo ja, wanneer lexicaal en wanneer context-vrij gebruiken? Het verschil is: lexical restrictions A -/- cc1 context-free restrictions B -/- cc2 wordt genormaliseerd naar restrictions <A-LEX> -/- cc1 <B-CF> -/- cc2 Zie pagina 207 proefschrift > "vroeger" dacht ik dat een lexicale restrictie (denk aan "longest match") > betekende dat er *geen* optionele layouit tussen soort en de > restricted chars mochten staan. Bij context-vrije zou dat dan wel mogen. > Dat blijkt niet waar te zijn (experimenteel vastgesteld). Nee, een restrictie S -/- cc (zie boven voor verschil tussen lex en cf) betekent dat characters uit cc die niet mogen voorkomen achter een boom van soort S. De implementatie van restricties (waarbij een enkele character set gegeven is) wordt gegeven op pagina 47 van proefschrift; regel (Fo4). Een restrictie heeft tot gevolg dat de follow set van soort S beperkt wordt. Dit sluit een reductie van een S boom uit in het geval er een karacter uit cc volgt. > Helaas ga je in jouw proefschrift niet in op context-vrije restricties > (wel op lexicale) en uit de specs kan ik niet direct een verschil > afleiden (behalve op welke soorten ze toegepast worden). Er staan inderdaad geen voorbeelden in van context-vrije restricties, maar de semantiek is dus hetzelfde als die van lexicale. (Pagina's 207 en 47) > De reden dat ik meer wil weten is dat ik bezig ben met island grammars > en in sommige gevallen een ambiguiteit op kan lossen met een > context-vrije restrictie op een verder lexicaal gedefinieerde soort > ([a-z]+ -> Water). Als je het voorbeeld wat uitgebreider beschrijft kan ik je misschien helpen.
@PhdThesis{Vis97.thesis, author = {Visser, Eelco}, title = {Syntax Definition for Language Prototyping}, year = {1997}, month = {September}, school = {University of Amsterdam}, URL = { http://www.cs.uu.nl/~visser/thesis/ } }In the syntax of BibTeX? entries the symbol { has two meanings: (1) indicating the start of the list of fields and (2) indicating the start of a field body. The second kind of use requires a lexical treatment since the body of a field consists of an arbitrary list of characters until the closing } is found. In an approach where scanner and parser are separated it is not possible for the scanner to know which kind of { is encountered. Furthermore, a field body can contain nested occurences of { and }, which should only occur in matching pairs. In Finally, the treatment of whitespace is different between entries, between the fields of an entry and inside the body of a field.
context-free syntax C {Entry C}* C -> Entries "@" EName "{" Key "," {Field ","}* ","? "}" -> Entry Name "=" Value -> Field "{" ValWords "}" -> Value (ValWord | ("{" ValWords "}"))* -> ValWords lexical syntax ~[\{\}\ \t\n]+ -> ValWord lexical restrictions ValWord -/- ~[\{\}\ \t\n]The complete syntax definition for BibTeX? (that also treats double quotes in field bodies correctly) can be found at http://www.cwi.nl/~mdejonge/grammar-base/bibtex.0/index.html Solving Lexical Ambiguities Longest Match follow restrictions Reserved Words in a normal scanner generator like LEX when combining languages we want to have separate sets of reserved words; a COBOL reserved word should not be used as a COBOL identifier, but might be quite usable as a SQL identifier Ignoring Whitespace in Lexicals In Fortran whitespace inside lexicals is not significant. This can be accomodated in Trash.SDFII by using context-free syntax to define lexicals. Dividing a Syntax Definition into Modules reuse of pieces of syntax renaming Combining Languages COBOL is a language for manipulating business information represented by means of lists of records. COBOL programs are often mixed with fragments from other languages. For example, SQL queries can be embedded to access a database and CICS programs are used for process control. It is desirable to describe the syntax of each of the language separately and combine these descriptions as needed. In a traditional syntax definition formalism this is not possible: (1) The grammars restrictions such LL or LALR on which the context-free syntax is based are not closed under composition. (2) the regular grammars on which the definition of the lexical syntax are based are not closed under composition either. In practice, this translates to the following: A scanner does not consider the context in determining the sort of a token. Therefore, normal scanners cannot deal with (LEX provides a workaround by means of modes.) In Trash.SDFII the syntax of the composing languages can be described in separate modules and combined at will. For example, consider the following fragments from a syntax definition for COBOL. (Note that the actual combined syntax definition for COBOL, CICS and SQL combined consists of 1600 LOC divided into 38 modules.)
Module ID defines the syntax of identifiers. The module ID lexical syntax [0-9]* [A-Z] -> Lex-Id [0-9]* [A-Z] [A-Za-z0-9\-]* [A-Za-z0-9] -> Lex-Id [0-9]+ [\-] [0-9\-]* [A-Z] [A-Za-z0-9\-]* [A-Za-z0-9] -> Lex-Id context-free syntax Lex-Id -> Id lexical restrictions Lex-Id -/- [A-Za-z0-9\-]Module COBOL defines the syntax of COBOL programs. The actual syntax definition for cobol consists of 36 modules. Here only the productions relevant for the example are shown. Note that the syntax of Picture overlaps with the syntax for Id. This overlap is disambiguated by context.
module COBOL imports ID %% ... lexical syntax [0-9XxAa\(\)pZzVvSszBCRD\/\,\$\+\-\*\:]+ -> Picture context-free syntax Ident-div Env-div Data-div Proc-div -> Program "DATA" "DIVISION" "." File-sec Ws-sec Link-sec -> Data-div "FILE" "SECTION" "." File-desc* -> File-sec "FD" Id Fd-item* "." Data-desc* -> File-desc Dd-header Dd-body* -> Data-descModule SQL defines the syntax for SQL queries. Queries are embedded into COBOL programs by means of the keywords EXEC SQL ... END-EXEC.
module SQL lexical syntax [A-Z0-9\-\_\.\:]+ -> Sql-id context-free syntax "SELECT" Distinct Select-list From-into Where Order-by -> Select Select -> Sql-item "EXEC" "SQL" Sql-item+ "END-EXEC" "." -> Data-desc "EXEC" "SQL" Sql-item+ "END-EXEC" -> StatModule CICS defines the syntax of CICS commands and their embedding in COBOL programs. Note that a command can have a reference to an A-exp, which is a COBOL expression.
module CICS imports PROGRAM lexical syntax [A-Z]+ -> Cics-kw context-free syntax Stat* "EXEC" "CICS" Cics-command Cics-opt* "." -> Sentence "EXEC" "CICS" Cics-command Cics-opt* "END-EXEC" -> Stat Cics-kw -> Cics-opt Cics-kw "(" Cics-arg ")" -> Cics-opt A-exp -> Cics-arg Str -> Cics-arg "ADDRESS" "OF" A-exp -> Cics-arg "LENGTH" "OF" A-exp -> Cics-arg "ABEND" -> Cics-command %% etc.
sglr
, which is a generic parser. The sglr
parser interprets parse tables generated by the parse table generator from an SDF2 syntax definition. The parser outputs parse trees or parse forests if there is more than one possible parse tree.
readme.txt
with installation instructions.
Microsoft Windows Cygwin binaries
* aterm-2.2
* sdf2-bundle-2.2
* The *-cygwin.tar.gz files contain a file readme.txt
with installation instructions.readme.txt
with installation instructions.
Mac OS X binaries
* aterm-2.3.1?
* sdf2-bundle-2.3?
* The *-macosx.tar.gz files contain a file readme.txt
with installation instructions.
"-" | "+"
becomes
alt(1,[]) or alt(2,[])
because a literal does not have a
representation in an imploded tree. This fixes a core dump
* The efficiency of the syntax checker was improved
drastically. This reduces parsetable generation times.
* A new commandline tool: filterPT
. It filters parse forests based
on some command line arguments. Currently, we have one filter to
find trees with a maximum or minumum number of occurrences of a
certain non-terminal. It is used to implement filters for island
grammars.
* A new small package: tide-support. Contains a library for
developing new TIDE debugging adapters.
(News selected from Meta-Environment 1.5.2 and 1.5.3 news)README
with installation instructions.
README
with installation instructions.
* aterm-%ATERMVERSION%?
* sdf2-bundle-%SDFVERSION%?
Mac OS X binaries
The *-macosx.tar.gz files contain a file README
with installation instructions.
* aterm-%ATERMVERSION%?
* sdf2-bundle-%SDFVERSION%?
Nix Packages
Open nixpkg
files with nix-install-package
. Installation of a Nix package is a one-click
installation of package and all its dependencies.
i686-linux:
* aterm-2.4?
* sdf2-bundle-2.3.2?
powerpc-darwin:
* aterm-2.4?
* sdf2-bundle-2.3.2?
README
with installation instructions.
* aterm-%ATERMVERSION%?
* sdf2-bundle-%SDFVERSION%?
Mac OS X binaries
The *-macosx.tar.gz files contain a file README
with installation instructions.
* aterm-%ATERMVERSION%?
* sdf2-bundle-%SDFVERSION%?
Nix Packages
Open nixpkg
files with nix-install-package
. Installation of a Nix package is a one-click
installation of package and all its dependencies.
i686-linux:
* aterm-%ATERMVERSION%?
* sdf2-bundle-%SDFVERSION%?
powerpc-darwin:
* aterm-%ATERMVERSION%?
* sdf2-bundle-%SDFVERSION%?
Language | Version | Available in | View online |
---|---|---|---|
ASF | SDF Library | browse? | |
AsFix | SDF Library | browse? | |
AspectJ | 5.0 | AspectJ-front? | browse? |
ATerm | SDF Library | browse? | |
Bibtex | Bibtex-tools? | ||
Box | GPP | browse? | |
C | ad-hoc | StrategoXT?/c-tools? | |
C | C99 | EPITA's Transformers Project | |
C | ANSI-C (?) | SDF Library | browse? |
C++ | EPITA's Transformers Project | ||
C# | C# 2.0 | csharp-front | browse |
C Preprocessor | SDF Library | browse? | |
Dot (GraphViz) | Stratego/XT Utils | ||
ECMAScript | Edition 3 (ECMA-262) | Under development in ECMAScript-front? | |
HQL | WebDSL | browse | |
Java | 1.4 | Java-front? | |
Java | 1.5 | Java-front? | browse? |
JavaScript | See ECMAScript | ||
Jimple | Jimple-front? | browse? | |
JSP | Under development in StringBorg? | ||
LDAP Search Filters | RFC 4515 | StringBorg? | |
Octave | Under development in the Stratego Octave Compiler | ||
PHP | 4 | PHP-front | browse? |
PHP | 5 | PHP-front | browse? |
Prolog | Prolog-tools? | ||
Shell | Under development in StringBorg? | ||
Similix (subset of Scheme) | Similix in Stratego | ||
SQL | 92 | SQL-front? | |
Stratego | 0.9 - latest | StrategoXT?/stratego-front? | |
SDF | SDF Library 1.0 | browse? | |
Tiger | Tiger in Stratego | ||
URI | RFC 1738 | Nix | |
VDM-SL | ISO/IEC 13817-1:1996 | VooDooMFront | |
XML | 1.0 | Stratego/XT? | |
XPath | 1.0 | Under development in StringBorg? |
input and output | ||
-i | file | input from file (default: all file arguments) |
-o | file | output to file (default: inputfile.tbl) |
-m | name | parse table is generated for module name (default: Main) |
output format | ||
-b | write output in Binary AsFix (BAF) format | |
-t | write output in plain text format | |
control operation | ||
-n | only normalization of grammar | |
-s | check sdf definition and show warnings on stderr | |
runtime information | ||
-l | display statistic information | |
-v | verbose mode | |
meta information | ||
-h | display help information (usage) | |
-V | reveal program version (i.e. 1.13) |
parse-table(<term>,<term>,<term>,states([<list>]),priorities(<term>))* The first
<term>
is a version number, currently 4.
* The second <term>
is the number of the initial state, normally 0.
* The third <term>
is a list of labels of the form
label(<term>,<int>)
, where <term>
represents a production rule and
<int>
the label number. The production rule is represented as an ATerm and has,
e.g., the form: prod([sort("<START>"),char-class([256])],sort("<Start>"),no-attrs)
* The states have the form: state-rec(<int>,[<list>],[<list>])
where <int>
represents the state number, the first list the list of gotos,
and the second list the list of actions.
* A goto item looks like goto([<list>],<int>)
, this list is a list of single characters, character ranges, and/or label numbers. The <int>
is the state number to which the parser has to jump.
* A action item looks like action([<list>],[<list>])
, where the first list is a list of single characters and/or character ranges. The second list are the actions that have to be performed:
* reduce(<int>,<int>,<int>)
: first <int>
represents the number of members in of the production rule with label given as second <int>
, and the last <int>
represent that "status" of a production rule, prefer
, avoid
, reject
, or normal.
* reduce(<int>,<int>,<int>,<term>)
: the <term>
represents a lookahead set greater than one. Lookaheads of more than one character are performed dynamically.
* shift(<int>)
: the <int>
represent the new state after shifting the current character.
* accept
* The priorities is a list of relations between 2 production rules:
* left-prio(<int>,<int>)
* right-prio(<int>,<int>)
* non-assoc-prio(<int>,<int>)
* gtr-prio(<int>,<int>)
where the <int>s
are the labels of the production rules involved. left
, right
, and non-assoc
are associativity attributes used within the Tools.SDF definition. gtr
is the priority relation.Web | TWiki Site Map | Use to... |
---|---|---|
Main | The Main web is dedicated to the maintenance of this website. This is the place to discuss meta-issues such as what style to use, how best to organize a survey, what the ideal topic size is, how to refer to papers, what the preferred layout of the site should be, etc. | ... |
TWiki | Welcome, Registration, and other StartingPoints; TWiki history & Wiki style; All the docs... | ...discover TWiki details, and how to start your own site. |
Gmt | Generative Model Transformer | |
Gpce | ||
Octave | The Stratego web is the home of Stratego, a language for program transformation based on the paradigm of rewriting strategies. The aim of this language is to provide an expressive and declarative language for expressing all kinds of program transformations. The web includes publications on Stratego, download of the StrategoCompiler, documentation, and descriptions of applications. | ... |
Sandbox | Sandbox test area with all features enabled. | ...experiment in an unrestricted hands-on web. |
Sdf | The Sdf web is dedicated to the modular syntax definition formalism SDF. Here you can find implementations, pointers to download pages, syntax definitions for common languages, discussions about new features and implementatios of SDF, and tips and tricks for using the formalism. | ... |
SdfBackup | The Sdf web is dedicated to the modular syntax definition formalism SDF. Here you can find implementations, pointers to download pages, syntax definitions for common languages, discussions about new features and implementatios of SDF, and tips and tricks for using the formalism. | ... |
Stratego | The Stratego web is the home of Stratego, a language for program transformation based on the paradigm of rewriting strategies. The aim of this language is to provide an expressive and declarative language for expressing all kinds of program transformations. The web includes publications on Stratego, download of the StrategoCompiler, documentation, and descriptions of applications. | ... |
Sts | The Sofware Transformation Systems wiki | |
Tiger | Home of the Tiger in Stratego project, which is concerned with the exploration of transformation techniques in compilation using an implementation of a Tiger compiler. | ... |
Tools | The Tools web is the home of the XT? bundle of program transformation tools. XT is an open framework for program transformation based on the ATerm format for exchange of programs between tools. The bundle includes packages for parsing, pretty-printing, term rewriting, and grammar recovery. It also contains a distribution of the SDF2? GrammarBase?. The OnlinePackageBase is an open collection of packages for program transformation supporting package bundling on demand. | ... |
Transform | The Transform web is an attempt to get an overview of program transformation research and application. In the first place the web is a collection of resources such as pointers to researchers, conferences, journals, summaries and reviews of papers, and tools for implementing transformation systems. In the second place the Transform web attempts to bring structure in the world of program transformation by means of categories, taxonomies such as the TransformationTaxonomy, and entry points such as the ReengineeringWiki and the DeCompilation page. | ... |
You can use color coding by web for identification and reference. This table is updated automatically based on WebPreferences settings of the individual webs. Contact webmaster@strategoxt.org if you need a separate collaboration web for your team. See also AdminTools. |
Legend of icons: |
= Go to the home of the web = Search the web |
= See recent changes in the web = Subscribe to get notified of changes by e-mail |
Topic | Changed | By |
---|---|---|
WebHeaderMenu? | 07 Jun 2013 - 09:21 | TWikiGuest |
WebLeftBar | 20 Apr 2011 - 13:32 | LennartKats |
DevelopmentTools? | 20 Apr 2011 - 13:31 | LennartKats |
SdfPublications? | 20 Apr 2011 - 13:24 | LennartKats |
SdfDevelopment? | 20 Apr 2011 - 13:03 | LennartKats |
SdfRelatedSoftware? | 20 Apr 2011 - 13:03 | LennartKats |
SdfSoftware? | 20 Apr 2011 - 13:02 | LennartKats |
SdfDocumentation? | 20 Apr 2011 - 13:02 | LennartKats |
WebHome | 20 Apr 2011 - 13:01 | LennartKats |
WebNews | 20 Apr 2011 - 12:57 | LennartKats |
SdfApplications? | 30 Nov 2010 - 14:31 | JurgenVinju |
OldReleases? | 30 Nov 2010 - 14:29 | JurgenVinju |
SdfDemos? | 17 Sep 2008 - 15:28 | JurgenVinju |
SdfGrammars? | 30 Jun 2008 - 23:21 | Main.karltk |
SglrParseTableFormat? | 30 Jun 2008 - 18:36 | Main.karltk |
SGLR? | 30 Jun 2008 - 09:40 | Main.karltk |
Sdf2BundleRelease232? | 15 Mar 2008 - 22:53 | MartinBravenboer |
Sdf2BundleRelease233? | 15 Mar 2008 - 22:27 | MartinBravenboer |
MailingList | 11 Mar 2008 - 21:37 | JurgenVinju |
SdfBugs? | 11 Mar 2008 - 20:54 | JurgenVinju |
BSDLicense? | 11 Mar 2008 - 20:41 | JurgenVinju |
AQuickIntroductionToSDF? | 11 Mar 2008 - 20:29 | JurgenVinju |
SdfBundle? | 26 Feb 2008 - 10:27 | ArnoldLankamp? |
Sdf2BundleRelease16? | 26 Feb 2008 - 10:24 | ArnoldLankamp? |
Sdf2BundleRelease201? | 26 Feb 2008 - 10:24 | ArnoldLankamp? |
Sdf2BundleRelease21? | 26 Feb 2008 - 10:24 | ArnoldLankamp? |
Sdf2BundleRelease23? | 26 Feb 2008 - 10:23 | ArnoldLankamp? |
Sdf2BundleRelease22? | 26 Feb 2008 - 10:23 | ArnoldLankamp? |
Sdf2BundleRelease231? | 26 Feb 2008 - 10:23 | ArnoldLankamp? |
WebPreferences | 25 Feb 2008 - 14:11 | ArnoldLankamp? |
WebStatistics | 16 Dec 2007 - 01:12 | TWikiGuest |
SdfLanguage? | 26 Nov 2007 - 22:37 | JurgenVinju |
WebMenu? | 29 Jan 2007 - 22:14 | Main.paulk |
SdfGlossary? | 24 Dec 2004 - 00:59 | MartinBravenboer |
WebChanges | 22 Dec 2004 - 17:39 | MartinBravenboer |
WebTools | 29 Nov 2004 - 17:38 | MartinBravenboer |
GeneralizedLR? | 18 Jul 2004 - 14:38 | MartinBravenboer |
GrammarTesting? | 25 Feb 2004 - 11:15 | MartinBravenboer |
SdfToTable? | 17 Feb 2004 - 11:35 | MartinBravenboer |
PGEN? | 17 Feb 2004 - 11:33 | MartinBravenboer |
WebRss | 09 Feb 2004 - 16:04 | MartinBravenboer |
SdfRequirements? | 09 Feb 2004 - 14:42 | MartinBravenboer |
SDFbyExample? | 09 Feb 2004 - 14:41 | MartinBravenboer |
SDF2o2? | 09 Feb 2004 - 14:40 | MartinBravenboer |
SDF2Publications? | 09 Feb 2004 - 14:39 | MartinBravenboer |
SDF3? | 09 Feb 2004 - 13:53 | MartinBravenboer |
SdfForum? | 09 Feb 2004 - 13:29 | MartinBravenboer |
DisambiguationInSDF2? | 09 Feb 2004 - 13:21 | MartinBravenboer |
DisambiguationFiltersForScannerlessGeneralizedLRParsers? | 09 Feb 2004 - 13:17 | MartinBravenboer |
LexicalVersusContextFreeRestrictions? | 09 Feb 2004 - 13:01 | MartinBravenboer |
ScannerlessGeneralizedLR? | 30 Jan 2004 - 16:55 | MartinBravenboer |
GrammarBase? | 24 Jan 2004 - 17:32 | MartinBravenboer |
WebNotify | 24 Jan 2004 - 16:04 | MartinBravenboer |
UpdateWebPages | 20 Sep 2002 - 08:37 | EelcoVisser |
SiteMap | 27 Aug 2002 - 08:00 | EelcoVisser |
WebChanges500 | 23 Apr 2002 - 20:09 | EelcoVisser |
WebChanges200 | 23 Apr 2002 - 20:05 | EelcoVisser |
WebChanges100 | 23 Apr 2002 - 19:53 | EelcoVisser |
WebIndex | 23 Jan 2002 - 14:20 | EelcoVisser |
WebSearch | 08 Aug 2001 - 05:26 | PeterThoeny |
Topic | Changed | By |
---|---|---|
WebHeaderMenu? | 07 Jun 2013 - 09:21 | TWikiGuest |
WebLeftBar | 20 Apr 2011 - 13:32 | LennartKats |
DevelopmentTools? | 20 Apr 2011 - 13:31 | LennartKats |
SdfPublications? | 20 Apr 2011 - 13:24 | LennartKats |
SdfDevelopment? | 20 Apr 2011 - 13:03 | LennartKats |
SdfRelatedSoftware? | 20 Apr 2011 - 13:03 | LennartKats |
SdfSoftware? | 20 Apr 2011 - 13:02 | LennartKats |
SdfDocumentation? | 20 Apr 2011 - 13:02 | LennartKats |
WebHome | 20 Apr 2011 - 13:01 | LennartKats |
WebNews | 20 Apr 2011 - 12:57 | LennartKats |
SdfApplications? | 30 Nov 2010 - 14:31 | JurgenVinju |
OldReleases? | 30 Nov 2010 - 14:29 | JurgenVinju |
SdfDemos? | 17 Sep 2008 - 15:28 | JurgenVinju |
SdfGrammars? | 30 Jun 2008 - 23:21 | Main.karltk |
SglrParseTableFormat? | 30 Jun 2008 - 18:36 | Main.karltk |
SGLR? | 30 Jun 2008 - 09:40 | Main.karltk |
Sdf2BundleRelease232? | 15 Mar 2008 - 22:53 | MartinBravenboer |
Sdf2BundleRelease233? | 15 Mar 2008 - 22:27 | MartinBravenboer |
MailingList | 11 Mar 2008 - 21:37 | JurgenVinju |
SdfBugs? | 11 Mar 2008 - 20:54 | JurgenVinju |
BSDLicense? | 11 Mar 2008 - 20:41 | JurgenVinju |
AQuickIntroductionToSDF? | 11 Mar 2008 - 20:29 | JurgenVinju |
SdfBundle? | 26 Feb 2008 - 10:27 | ArnoldLankamp? |
Sdf2BundleRelease16? | 26 Feb 2008 - 10:24 | ArnoldLankamp? |
Sdf2BundleRelease201? | 26 Feb 2008 - 10:24 | ArnoldLankamp? |
Sdf2BundleRelease21? | 26 Feb 2008 - 10:24 | ArnoldLankamp? |
Sdf2BundleRelease23? | 26 Feb 2008 - 10:23 | ArnoldLankamp? |
Sdf2BundleRelease22? | 26 Feb 2008 - 10:23 | ArnoldLankamp? |
Sdf2BundleRelease231? | 26 Feb 2008 - 10:23 | ArnoldLankamp? |
WebPreferences | 25 Feb 2008 - 14:11 | ArnoldLankamp? |
WebStatistics | 16 Dec 2007 - 01:12 | TWikiGuest |
SdfLanguage? | 26 Nov 2007 - 22:37 | JurgenVinju |
WebMenu? | 29 Jan 2007 - 22:14 | Main.paulk |
SdfGlossary? | 24 Dec 2004 - 00:59 | MartinBravenboer |
WebChanges | 22 Dec 2004 - 17:39 | MartinBravenboer |
WebTools | 29 Nov 2004 - 17:38 | MartinBravenboer |
GeneralizedLR? | 18 Jul 2004 - 14:38 | MartinBravenboer |
GrammarTesting? | 25 Feb 2004 - 11:15 | MartinBravenboer |
SdfToTable? | 17 Feb 2004 - 11:35 | MartinBravenboer |
PGEN? | 17 Feb 2004 - 11:33 | MartinBravenboer |
WebRss | 09 Feb 2004 - 16:04 | MartinBravenboer |
SdfRequirements? | 09 Feb 2004 - 14:42 | MartinBravenboer |
SDFbyExample? | 09 Feb 2004 - 14:41 | MartinBravenboer |
SDF2o2? | 09 Feb 2004 - 14:40 | MartinBravenboer |
SDF2Publications? | 09 Feb 2004 - 14:39 | MartinBravenboer |
SDF3? | 09 Feb 2004 - 13:53 | MartinBravenboer |
SdfForum? | 09 Feb 2004 - 13:29 | MartinBravenboer |
DisambiguationInSDF2? | 09 Feb 2004 - 13:21 | MartinBravenboer |
DisambiguationFiltersForScannerlessGeneralizedLRParsers? | 09 Feb 2004 - 13:17 | MartinBravenboer |
LexicalVersusContextFreeRestrictions? | 09 Feb 2004 - 13:01 | MartinBravenboer |
ScannerlessGeneralizedLR? | 30 Jan 2004 - 16:55 | MartinBravenboer |
GrammarBase? | 24 Jan 2004 - 17:32 | MartinBravenboer |
WebNotify | 24 Jan 2004 - 16:04 | MartinBravenboer |
UpdateWebPages | 20 Sep 2002 - 08:37 | EelcoVisser |
SiteMap | 27 Aug 2002 - 08:00 | EelcoVisser |
WebChanges500 | 23 Apr 2002 - 20:09 | EelcoVisser |
WebChanges200 | 23 Apr 2002 - 20:05 | EelcoVisser |
WebChanges100 | 23 Apr 2002 - 19:53 | EelcoVisser |
WebIndex | 23 Jan 2002 - 14:20 | EelcoVisser |
WebSearch | 08 Aug 2001 - 05:26 | PeterThoeny |
Topic | Changed | By |
---|---|---|
WebSearch | 08 Aug 2001 - 05:26 | PeterThoeny |
WebIndex | 23 Jan 2002 - 14:20 | EelcoVisser |
WebChanges100 | 23 Apr 2002 - 19:53 | EelcoVisser |
WebChanges200 | 23 Apr 2002 - 20:05 | EelcoVisser |
WebChanges500 | 23 Apr 2002 - 20:09 | EelcoVisser |
SiteMap | 27 Aug 2002 - 08:00 | EelcoVisser |
UpdateWebPages | 20 Sep 2002 - 08:37 | EelcoVisser |
WebNotify | 24 Jan 2004 - 16:04 | MartinBravenboer |
GrammarBase? | 24 Jan 2004 - 17:32 | MartinBravenboer |
ScannerlessGeneralizedLR? | 30 Jan 2004 - 16:55 | MartinBravenboer |
LexicalVersusContextFreeRestrictions? | 09 Feb 2004 - 13:01 | MartinBravenboer |
DisambiguationFiltersForScannerlessGeneralizedLRParsers? | 09 Feb 2004 - 13:17 | MartinBravenboer |
DisambiguationInSDF2? | 09 Feb 2004 - 13:21 | MartinBravenboer |
SdfForum? | 09 Feb 2004 - 13:29 | MartinBravenboer |
SDF3? | 09 Feb 2004 - 13:53 | MartinBravenboer |
SDF2Publications? | 09 Feb 2004 - 14:39 | MartinBravenboer |
SDF2o2? | 09 Feb 2004 - 14:40 | MartinBravenboer |
SDFbyExample? | 09 Feb 2004 - 14:41 | MartinBravenboer |
SdfRequirements? | 09 Feb 2004 - 14:42 | MartinBravenboer |
WebRss | 09 Feb 2004 - 16:04 | MartinBravenboer |
PGEN? | 17 Feb 2004 - 11:33 | MartinBravenboer |
SdfToTable? | 17 Feb 2004 - 11:35 | MartinBravenboer |
GrammarTesting? | 25 Feb 2004 - 11:15 | MartinBravenboer |
GeneralizedLR? | 18 Jul 2004 - 14:38 | MartinBravenboer |
WebTools | 29 Nov 2004 - 17:38 | MartinBravenboer |
WebChanges | 22 Dec 2004 - 17:39 | MartinBravenboer |
SdfGlossary? | 24 Dec 2004 - 00:59 | MartinBravenboer |
WebMenu? | 29 Jan 2007 - 22:14 | Main.paulk |
SdfLanguage? | 26 Nov 2007 - 22:37 | JurgenVinju |
WebStatistics | 16 Dec 2007 - 01:12 | TWikiGuest |
WebPreferences | 25 Feb 2008 - 14:11 | ArnoldLankamp? |
Sdf2BundleRelease23? | 26 Feb 2008 - 10:23 | ArnoldLankamp? |
Sdf2BundleRelease22? | 26 Feb 2008 - 10:23 | ArnoldLankamp? |
Sdf2BundleRelease231? | 26 Feb 2008 - 10:23 | ArnoldLankamp? |
Sdf2BundleRelease16? | 26 Feb 2008 - 10:24 | ArnoldLankamp? |
Sdf2BundleRelease201? | 26 Feb 2008 - 10:24 | ArnoldLankamp? |
Sdf2BundleRelease21? | 26 Feb 2008 - 10:24 | ArnoldLankamp? |
SdfBundle? | 26 Feb 2008 - 10:27 | ArnoldLankamp? |
AQuickIntroductionToSDF? | 11 Mar 2008 - 20:29 | JurgenVinju |
BSDLicense? | 11 Mar 2008 - 20:41 | JurgenVinju |
SdfBugs? | 11 Mar 2008 - 20:54 | JurgenVinju |
MailingList | 11 Mar 2008 - 21:37 | JurgenVinju |
Sdf2BundleRelease233? | 15 Mar 2008 - 22:27 | MartinBravenboer |
Sdf2BundleRelease232? | 15 Mar 2008 - 22:53 | MartinBravenboer |
SGLR? | 30 Jun 2008 - 09:40 | Main.karltk |
SglrParseTableFormat? | 30 Jun 2008 - 18:36 | Main.karltk |
SdfGrammars? | 30 Jun 2008 - 23:21 | Main.karltk |
SdfDemos? | 17 Sep 2008 - 15:28 | JurgenVinju |
OldReleases? | 30 Nov 2010 - 14:29 | JurgenVinju |
SdfApplications? | 30 Nov 2010 - 14:31 | JurgenVinju |
WebNews | 20 Apr 2011 - 12:57 | LennartKats |
WebHome | 20 Apr 2011 - 13:01 | LennartKats |
SdfSoftware? | 20 Apr 2011 - 13:02 | LennartKats |
SdfDocumentation? | 20 Apr 2011 - 13:02 | LennartKats |
SdfDevelopment? | 20 Apr 2011 - 13:03 | LennartKats |
SdfRelatedSoftware? | 20 Apr 2011 - 13:03 | LennartKats |
SdfPublications? | 20 Apr 2011 - 13:24 | LennartKats |
DevelopmentTools? | 20 Apr 2011 - 13:31 | LennartKats |
WebLeftBar | 20 Apr 2011 - 13:32 | LennartKats |
WebHeaderMenu? | 07 Jun 2013 - 09:21 | TWikiGuest |
SDF is a language for defining syntax. It provides for an unprecedented level of conciseness in syntax definitions. First, syntax can be defined in modules. Second, lexical and context-free syntax are integrated in a single formalism in which the complete syntax of a language can be defined. Third, SDF includes declarative disambiguation constructs. Therefore, there is no need to introduce non-terminals to deal with ambiguities in a language.
Some useful places to start:
|