<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user">
    <title>gmane.comp.parsers.sbp.user</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/18"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/17"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/16"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/15"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/14"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/13"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/12"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/11"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/10"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/9"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/8"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/7"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/6"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/5"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/4"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/18">
    <title>Re: Lone negative conjuncts</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/18</link>
    <description>&lt;pre&gt;
Sean &amp;lt;root&amp;lt; at &amp;gt;rprogrammer.net&amp;gt; writes:

Hrm, doesn't

  X = ~~Y

work?



I think you would actually want to use "any string of any length" as the
positive conjunct:

  X = ~[]* &amp;amp;~ Y

Where ~[]* is SBP admittedly-strange idiom for "any string" (read it as
[] being the empty character class, ~[] being its complement, and ~[]*
being the repetition thereof zero or more times; nearly all my grammars
make this into a nonterminal called "Any" or something like that).

  - a



&lt;/pre&gt;</description>
    <dc:creator>Adam Megacz</dc:creator>
    <dc:date>2011-01-27T23:22:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/17">
    <title>Scala bindings for SBP added, Haskell bindings deprecated</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/17</link>
    <description>&lt;pre&gt;
The Haskell bindings for SBP have fallen into a state of terminal
disrepair, and I regret that I haven't been able to find a decent
Haskell&amp;lt;-&amp;gt;Java bridge.  So, for the moment, I'm abandoning the Haskell
bindings.

However, on the positive side, I've added (terribly inefficient) Scala
bindings to the latest checkin:

  http://git.megacz.com/?p=sbp.git;a=summary

walking parse trees in Scala is quite pleasant, for basically the same
reasons that it was pleasant in Haskell.  For an example usage, see the
source code for WiX:

  http://git.megacz.com/?p=wix.git;a=blob;f=src/Doc.scala

  - a



&lt;/pre&gt;</description>
    <dc:creator>Adam Megacz</dc:creator>
    <dc:date>2011-01-23T03:10:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/16">
    <title>Lone negative conjuncts</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/16</link>
    <description>&lt;pre&gt;Thanks for the clarification, I think I understand it now.
But just one more thing:
In the definition of boolean grammars I read, it said m (number of
positive conjuncts) + n (number of negative conjuncts) &amp;gt;= 1, but in
SBP it seems to be m &amp;gt;= 1, that is one cannot create a rule formed
solely out of disjunctions.

Would it be functionally equivalent to make a Sequence with no
elements as the base, and andnot() negative conjuncts to that?


&lt;/pre&gt;</description>
    <dc:creator>Sean</dc:creator>
    <dc:date>2011-01-23T03:19:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/15">
    <title>Re: Rewriting in needs and hates</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/15</link>
    <description>&lt;pre&gt;
Sean &amp;lt;root&amp;lt; at &amp;gt;rprogrammer.net&amp;gt; writes:

No.  Any time you have a conjunct (positive or negative), the parse tree
produced by the second half is discarded.  For example:

  A = B &amp;amp;  C
    | D &amp;amp;~ E

parse trees for "C" and "E" will never be produced.

In the case of negative conjuncts ("E") we cannot save the parse trees
&lt;/pre&gt;</description>
    <dc:creator>Adam Megacz</dc:creator>
    <dc:date>2011-01-23T03:07:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/14">
    <title>Re: Understanding the grammars</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/14</link>
    <description>&lt;pre&gt;
Hi, Sean.

Sean &amp;lt;root&amp;lt; at &amp;gt;rprogrammer.net&amp;gt; writes:

Sadly, SBP can't do that.  The toString() methods on the grammar classes
are just for convenience and debugging; they don't actually produce a
valid GrammarAST.

There are actually two steps here:

  1) from "mygrammar.g" to GrammarAST
  2) from GrammarAST to Grammar (i.e., Union, Sequence, etc)

both of these steps are "one way" -- you lose information, so there's no
way to reverse the process.


Hrm, I'm not quite sure why you'd want to do that.  Are you attempting
to modify the parser itself, or do you just want to use it?

If you just want to use the parser, you should write your grammars using
the metagrammar.  If the parser malfunctions, let me know (and I'll try
to fix any bugs), but for the most part you should be able to debug your
grammar by looking at the parse trees (or parse errors) -- the same as
with other parsers like bison.

On the other hand, if you want to learn about the Tomita GLR algorithm
(and Okhotin's extension to boolean GLR), I don't&lt;/pre&gt;</description>
    <dc:creator>Adam Megacz</dc:creator>
    <dc:date>2011-01-23T03:04:20</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/13">
    <title>Rewriting in needs and hates</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/13</link>
    <description>&lt;pre&gt;Is the rewriting tag ever used in the sequences which specify
conjunctions and disjunctions (needs and hates)?


&lt;/pre&gt;</description>
    <dc:creator>Sean</dc:creator>
    <dc:date>2011-01-13T08:39:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/12">
    <title>Understanding the grammars</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/12</link>
    <description>&lt;pre&gt;Hi, I'm trying to learn about boolean grammars, and I think I
understand the explanation on http://users.utu.fi/aleokh/boolean/
My question is: how can I inspect Union, Sequence, and Atom object graphs?
I tried using toString(StringBuffer) but haven't yet succeeded in
producing output that can be run back through GrammarAST.
Briefly I tried using Eclipse to inspect the raw object fields, but I
can see that would require some reverse-engineering.
If there was some way to dump a grammar (given a Union object, say)
into the N and P sets, with rules in canonical form, that would be
interesting, but just being able to show the grammar in its most basic
form (ie, with syntactic shortcuts like *?+ resolved) would be very
nice (in fact, I think it would be almost be enough to learn the
metagrammar).
    --RP


&lt;/pre&gt;</description>
    <dc:creator>Sean</dc:creator>
    <dc:date>2011-01-12T07:11:23</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/11">
    <title>mailing list moved to sbp&lt; at &gt;lists.berkeley.edu</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/11</link>
    <description>&lt;pre&gt;
Hi, this email is just a reminder that the mailing list has been moved
from the old host at hcoop.net to sbp&amp;lt; at &amp;gt;lists.berkeley.edu.  Everybody who
was subscribed to the old list has been subscribed to the new list (you
should have recieved an email).  Here's the link:

  https://calmail.berkeley.edu/manage/list/listinfo/sbp&amp;lt; at &amp;gt;lists.berkeley.edu
&lt;/pre&gt;</description>
    <dc:creator>Adam Megacz</dc:creator>
    <dc:date>2010-10-24T23:03:57</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/10">
    <title>Re: Indentation (tree) parsing</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/10</link>
    <description>&lt;pre&gt;
Adam Megacz &amp;lt;megacz&amp;lt; at &amp;gt;cs.berkeley.edu&amp;gt; writes:

FWIW, there are at least two subtle issues here.

First, how to handle a "partial" indentation decrease.  For example:

...red
........blue
.....green

There really are only two choices.  Either allow this (and say that
blue and green are siblings with red their common parent), or declare
this to be an error and reject it.

The other issue is trickier.

...red
.....blue
........green
.....purple
.....white

Are purple and white siblings, or are they a single node that spans
two lines?  The knee-jerk reaction is to say that they are siblings,
but then you won't be able to parse this:

...module foo
.....import fred
........bob
.....if 1=2 then yes
.....else no

because the "if 1=2 then yes" and "else no" will end up as siblings in
the parse tree, where any sane grammar will expect "else no" to be a
child of "if 1=2".

The choices here are more difficult:

  1. Always assume they are siblings

  2. Always assume that the largest possible contiguous sequence of
   &lt;/pre&gt;</description>
    <dc:creator>Adam Megacz</dc:creator>
    <dc:date>2010-05-02T20:58:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/9">
    <title>Re: Indentation (tree) parsing</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/9</link>
    <description>&lt;pre&gt;
Yang Zhang &amp;lt;yanghatespam&amp;lt; at &amp;gt;gmail.com&amp;gt; writes:

Hi, sorry about the slow reply here; I'm usually quicker.

The technique used in the LDTA06 paper only applies when the arity of
each tree node can be determined by examining its head.  In the grammar
given in that paper, the tree has fixed arity (every non-leaf node is of
degree 2).

I've added a new regression test (see the end of regression.tc) that
shows how to do indentation-based parsing for binary trees.  It should
be straightforward to adapt it to any fixed arity, and it shouldn't be
hard to see how to do varying arity as long as you can determine the
arity from the head of the node.

I believe that variable arity parsing (where the arity is determined
from the indentation, like in Haskell) is possible, but I haven't had
time to work it out yet.

  - a
&lt;/pre&gt;</description>
    <dc:creator>Adam Megacz</dc:creator>
    <dc:date>2010-05-02T01:23:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/8">
    <title>Indentation (tree) parsing</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/8</link>
    <description>&lt;pre&gt;Hi, I'm interested in parsing this text:

xxx
|xxx
|xxx
||xxx
||xxx
|xxx
xxx

into this tree:

Branch {
  Branch {
    Leaf
    Branch {
      Leaf
      Leaf
    }
    Leaf
  }
  Leaf
}

I was borrowing the technique outlined in the LDTA06 paper, but I
can't seem to really hack it. Here's my current grammar:

s = Tree [\n ]!*
Tree = Tree::(Branch | Leaf)+
Leaf = Leaf::"|"**! "xxx" "\n" &amp;amp;~ BranchR "|"
BranchR = "|" BranchR "|" | [~|]++! "\n"
Branch = Branch::"|"**! "xxx" "\n" Tree &amp;amp;~ LeafR
LeafR = "|" LeafR "|" | "|" [~|]++! "\n"

It seems that Branch should be wrapped, but I don't know how to not
consume the subsequent nodes in the tree as part of the Branch itself
(i.e. not sure how to get the "lookahead" behavior). Any hints? Thanks
in advance.
&lt;/pre&gt;</description>
    <dc:creator>Yang Zhang</dc:creator>
    <dc:date>2010-03-17T18:56:49</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/7">
    <title>Re: Getting started</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/7</link>
    <description>&lt;pre&gt;
Yang Zhang &amp;lt;yanghatespam&amp;lt; at &amp;gt;gmail.com&amp;gt; writes:

See the "\n" there at the end of "text"?  Your grammar probably doesn't
include any provisions for whitespace.  Try adding this line to math.g
instead:

  s = Expr [\n ]!*


Ok, fixed.


Ah, unfortunately GrammarAST.emitCode() does not work yet.  I've checked
in a comment mentioning this fact.


I wish I had time to... probably not until the end of the semester.
Keep pestering me!

  - a
&lt;/pre&gt;</description>
    <dc:creator>Adam Megacz</dc:creator>
    <dc:date>2010-03-03T00:02:40</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/6">
    <title>Getting started</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/6</link>
    <description>&lt;pre&gt;Hi, I've been reading the docs (incl. the Javadoc), but I still don't
have a very good sense of how to write and use some simple grammars.
I'm interested in specifying grammars using the metagrammar, but
mostly I've been working my way backwards around the Java source and
tweaking the files in tests/*.g without luck.

For instance, after adding "s=Expr" to math.g, running `java -jar
edu.berkeley.sbp.jar tests/math.g testme` (where `testme` just has
`1+1`) gives me:

unexpected end of file at 2:1
     text: 1+1\n
 expected:

        at edu.berkeley.sbp.ParseFailed.error(ParseFailed.java:232)
        at edu.berkeley.sbp.ParseFailed.error(ParseFailed.java:144)
        at edu.berkeley.sbp.GSS$Phase.shift(GSS.java:158)
        at edu.berkeley.sbp.GSS$Phase.&amp;lt;init&amp;gt;(GSS.java:105)
        at edu.berkeley.sbp.Parser.parse(Parser.java:49)
        at edu.berkeley.sbp.misc.CommandLine.main(CommandLine.java:23)

`demo.g` fails to parse using the metagrammar -- I had to add `blah::`
in front of certain things to get to the&lt;/pre&gt;</description>
    <dc:creator>Yang Zhang</dc:creator>
    <dc:date>2010-02-05T00:11:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/5">
    <title>Re: Build issues</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/5</link>
    <description>&lt;pre&gt;
Yang Zhang &amp;lt;yanghatespam&amp;lt; at &amp;gt;gmail.com&amp;gt; writes:

My apologies, it looks like I mis-merged some old code.  I have fixed
things, and "make test" should work now.  Could you let me know if it
works for you?

Let me know if you have any other questions,

  - a
&lt;/pre&gt;</description>
    <dc:creator>Adam Megacz</dc:creator>
    <dc:date>2010-01-21T18:11:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.parsers.sbp.user/4">
    <title>Build issues</title>
    <link>http://permalink.gmane.org/gmane.comp.parsers.sbp.user/4</link>
    <description>&lt;pre&gt;I tried both git and , but although the code builds, the main class is
commented out. Removing the comment markers introduces a bunch of
build errors, some of which weren't trivial fixes, such as missing
classes (Bindings) and methods. Attached are fixes for some of the
issues, after which I see the following build issues:

$ make
mkdir -p bin
javac  -cp javax.servlet.jar -d bin -sourcepath src
src/edu/berkeley/sbp/Grammar.java
src/edu/berkeley/sbp/meta/MetaGrammar.java
src/edu/berkeley/sbp/meta/GrammarAST.java
src/edu/berkeley/sbp/meta/Repeat.java
src/edu/berkeley/sbp/misc/StringWalker.java
src/edu/berkeley/sbp/misc/CommandLine.java
src/edu/berkeley/sbp/misc/ReflectiveWalker.java
src/edu/berkeley/sbp/misc/Cartesian.java
src/edu/berkeley/sbp/misc/Demo.java
src/edu/berkeley/sbp/misc/Java15.java
src/edu/berkeley/sbp/misc/TestAstGenerator.java
src/edu/berkeley/sbp/misc/IndentingReader.java
src/edu/berkeley/sbp/misc/RegressionTests.java
src/edu/berkeley/sbp/misc/Demo2.java
src/edu/berkeley/sbp/misc/TreeWalker.ja&lt;/pre&gt;</description>
    <dc:creator>Yang Zhang</dc:creator>
    <dc:date>2010-01-21T15:13:28</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.parsers.sbp.user">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.parsers.sbp.user</link>
  </textinput>
</rdf:RDF>
