[prev in list] [next in list] [prev in thread] [next in thread]
List: e-lang
Subject: [e-lang] Bug: Syntax error in deSrcKit generated code
From: kpreid () attglobal ! net (Kevin Reid)
Date: 2003-11-14 21:58:40
[Download RAW message or body]
? def surgeon := <elib:serial.makeSurgeon>.withSrcKit(null)
# value: <surgeon>
? def foo__uriGetter {
> to get(s) :any {
> def distinct {
> to __optUncall() :any { [foo__uriGetter, "get", [s]] }
> }
> }
> }
# value: <foo__uriGetter>
? surgeon.addExit(foo__uriGetter, "foo__uriGetter")
? surgeon.serialize([<foo:bar>, <foo:bar>])
# syntax error:
# [<foo: def t_0 := "bar">, <foo: t_0>]
# ^
#
# <import:org.erights.e.elang.syntax.PrettyFeeder>.pretty("[<foo: def t_0 := \
\"bar\">, <foo: t_0>]") # \
<import:org.erights.e.elang.syntax.PrettyFeeder>.pretty("[<foo: def t_0 := \"bar\">, \
<foo: t_0>]") # *** @ \
<jar:file:/Stuff/e/e.jar!/org/erights/e/elib/serial/deSrcKit.emaker#:span::37:47::37:52>
# <deSrcBuilder>.buildRoot("[<foo: def t_0 := \"bar\">, <foo: t_0>]")
# <deSrcBuilder>.buildRoot("[<foo: def t_0 := \"bar\">, <foo: t_0>]")
# *** @ <jar:file:/Stuff/e/e.jar!/org/erights/e/elib/serial/deASTKit.emaker#:span::212:16::212:24>
# <deASTKit>.recognize(term`call(import("__makeList"), "run"... \
"get", [ibid(4)])])`, <deSrcBuilder>) # \
<deASTKit>.recognize(term`call(import("__makeList"), "run"... \
"get", [ibid(4)])])`, <deSrcBuilder>) # \
<deASTKit>.recognize(term`call(import("__makeList"), "run"... \
"get", [ibid(4)])])`, <deSrcBuilder>) # *** @ \
<jar:file:/Stuff/e/e.jar!/org/erights/e/elib/serial/makeSurgeon.emaker#:span::152:42::152:50>
# <surgeon>.serialize([<distinct>, <distinct>])
# <surgeon>.serialize([<distinct>, <distinct>])
# *** @ <-.e#:span::10:8::10:16>
# e`surgeon.serialize(__makeLi...foo__uriGetter.get("bar")))`.eval(<an OuterScope>)
# *** @ <jar:file:/Stuff/e/e.jar!/org/erights/e/elang/cmd/cmdMakerMaker.emaker#:span::75:25::75:28>
Fix for deSrcKit.buildCall, copying the code for 'res' earlier in that
method:
--- ../src-original/esrc/org/erights/e/elib/serial/deSrcKit.emaker Sun Aug 31 \
01:27:19 2003
+++ ./esrc/org/erights/e/elib/serial/deSrcKit.emaker Fri Nov 14 15:56:09 2003
@@ -83,7 +83,11 @@
`<$protocol:$body>`
}
- match [`@{protocol}__uriGetter`, `get`, [arg0]] {
+ match [`@{protocol}__uriGetter`, `get`, [var arg0]] {
+ if (arg0 =~ `def t_@_`) {
+ # the result would otherwise misparse.
+ arg0 := `($arg0)`
+ }
`<$protocol: $arg0>`
}
match [`__makeList`, `run`, _] {
--
Kevin Reid
_______________________________________________
e-lang mailing list
e-lang@mail.eros-os.org
http://www.eros-os.org/mailman/listinfo/e-lang
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic