From 15295b5c059adf69277ecbbe19dc078f8893b89c Mon Sep 17 00:00:00 2001 From: adam Date: Tue, 22 Aug 2006 17:52:20 -0400 Subject: [PATCH 1/1] added first FAQ darcs-hash:20060822215220-5007d-9d155783147f685530894bb835515f643bdd98b7.gz --- src/edu/berkeley/sbp/package.html | 61 +++++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/src/edu/berkeley/sbp/package.html b/src/edu/berkeley/sbp/package.html index 6841473..4aab655 100644 --- a/src/edu/berkeley/sbp/package.html +++ b/src/edu/berkeley/sbp/package.html @@ -5,7 +5,8 @@ APIs and all other packages are subject to change in future releases.

Be sure to read doc/jargon.txt and the description below. + href=#package_description>description below. There is also a + faq a the end of this document.

@@ -79,7 +80,7 @@ If the parse was not ambiguous, you can call

- +

Guide to the API

Example

@@ -166,6 +167,62 @@ Expr            =&nb output: add:{8 + mult:{add:{1 + 3} * 7}}
+

FAQs

+ +
+

+I get the error java.lang.Error: multiple non-dropped elements + in sequence, what does this mean? +

+ +

+Note: this question deals with the +package edu.berkeley.sbp.meta, which is not considered +stable. +

+ +

+When using the class edu.berkeley.sbp.meta.Grammar, you must +supply an instance of Grammar.Bindings; this instance tells +SBP how to create a parse tree for an expression using the parse trees +of its subexpressions. +

+ +

+SBP has no trouble determining what to do when parsing an expression +that drops all of its subexpressions, or all but one -- for example: +

+ +
+A = B! C D! E! +
+ +

+... in this example, only C is "non-dropped". In this case, +the result of parsing A is simply the result of parsing +C. +

+ +

+However, if we were to leave more than one element un-dropped, SBP +needs to know how to form a single tree out of the two non-dropped +subtrees. There are two ways to do this. The simplest is to provide +a tag -- a string which becomes the common parent of the two subtrees: +

+ +
+Expr = Mult:: Expr "*" Expr +
+ +

+If you are using AnnotationGrammarBindings, you can also deal +with this situation by declaring a method/inner-class whose name +matches the nonterminal (Expr) and has appropriate +annotations. This is fairly advanced stuff, and the code it uses +isn't quite as mature as the rest of the code. +

+ +

Reporting Bugs

-- 1.7.10.4