[Aurelia-svn] SF.net SVN: aurelia:[95] branches/gll
Status: Alpha
Brought to you by:
valentindavid
|
From: <val...@us...> - 2010-07-01 17:40:20
|
Revision: 95
http://aurelia.svn.sourceforge.net/aurelia/?rev=95&view=rev
Author: valentindavid
Date: 2010-07-01 17:40:14 +0000 (Thu, 01 Jul 2010)
Log Message:
-----------
2010-07-01 Valentin David <val...@ii...>
* src/parser_generator/parser_gen.cc:
Fix.
Modified Paths:
--------------
branches/gll/ChangeLog.branch
branches/gll/src/parser_generator/parser_gen.cc
Modified: branches/gll/ChangeLog.branch
===================================================================
--- branches/gll/ChangeLog.branch 2010-07-01 15:52:14 UTC (rev 94)
+++ branches/gll/ChangeLog.branch 2010-07-01 17:40:14 UTC (rev 95)
@@ -1,3 +1,8 @@
+2010-07-01 Valentin David <val...@ii...>
+
+ * src/parser_generator/parser_gen.cc:
+ Fix.
+
2010-06-24 Valentin David <val...@ii...>
* src/parser_generator/syntax.csf:
Modified: branches/gll/src/parser_generator/parser_gen.cc
===================================================================
--- branches/gll/src/parser_generator/parser_gen.cc 2010-07-01 15:52:14 UTC (rev 94)
+++ branches/gll/src/parser_generator/parser_gen.cc 2010-07-01 17:40:14 UTC (rev 95)
@@ -645,8 +645,6 @@
std::function<T(const T&)> f = [this, &f, &nt, &changed]
(const T& t) {
- V sym;
-
static V Tail = T(C::AS_EMPTY_LIST);
static V NoArg = T(C("NoArg"));
static C Symbol = C("Symbol", 2);
@@ -681,7 +679,7 @@
< [] (const std::string& in) {
return class_to_set(in);
})
- + (~Cons[String[s], next]
+ + (~Cons[AttrChainElt[attr,String[s]], next]
< !s
< get_cons_name
< undouble_quote
@@ -697,32 +695,28 @@
)(in);
};
- V next, attr;
+ V sym, next, attr, h;
return (~Tail +
- (scope(sym,
- scope(next,
- (where(~Cons[AttrChainElt[attr,Symbol[sym, NoArg]],
- next]
- < !next < firstof
- < [this, &sym, &changed]
- (std::bitset<256> t) {
- t |= set[*sym];
- if (t != set[*sym]) {
- changed = true;
- set[*sym] = t;
- }
- std::cerr << "Setting: "
- << set_to_class(set[*sym])
- << " to " << *sym
- << std::endl;
- return t;
- })
- + ~Cons[sym, next])
- < !next < f
- )
- )
- )
+ ( (where(~Cons[AttrChainElt[attr,Symbol[sym, NoArg]],
+ next]
+ < !next < firstof
+ < [this, &sym, &changed]
+ (std::bitset<256> t) {
+ std::cerr << "First for " << *sym << " was " << set_to_class(t) << std::endl;
+ t |= set[*sym];
+ if (t != set[*sym]) {
+ changed = true;
+ set[*sym] = t;
+ std::cerr << "Setting: "
+ << set_to_class(set[*sym])
+ << " to " << *sym
+ << std::endl;
+ }
+ return t;
+ })
+ + ~Cons[h, next])
+ < !next < f)
)(t);
};
@@ -1016,7 +1010,7 @@
static C AttrChainElt("AttrChainElt", 2);
V sym, attr;
- AttrChainElt[Symbol[sym, NoArg]] = head;
+ AttrChainElt[attr, Symbol[sym, NoArg]] = head;
std::cerr << *sym << " empty? " << (*build_empty)[*sym] << std::endl;
last.push_back((*build_empty)[*sym]);
} catch(Failure) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|