[SML 7696] Re: GNU Smalltalkについて

sunao furukawa sadie @ kind.ocn.ne.jp
2009年 10月 21日 (水) 20:41:16 JST


 再びですが古川です。
 対話型インタープリターで以下のようにやってみました。
-------------------------------------------
#gst
GNU Smalltalk ready

st> | a b |
st> a :=1
1
st> b :=4
4
st> a+b
5
-------------------------------------------
これだと確かにうまくいきます。
私がやったのは、GUIからです。
#cd /usr/local/share/smalltalk/scripts
#gst Browser.st &
そしてSmalltalk Transcriptの画面が出るのでメニューのSmalltalkからWorksheetを選択して、
Worksheetの画面が出てきたらペインの中に、
--------
| a b |
a:=1.
b:=4.
^a+b
--------
と入力し、全部マウスで選択したら右クリックでprint itを出して左クリックで実行しました。
 問題はその後エラーの画面が出ました。若干迷惑かもしれませんがエラーの内容をコピペします。
----------------------------------------------------------------------------------
MessageNotUnderstood(Exception)>>signal
String(Object)>>doesNotUnderstand: #+
[] in 
BLOX.BLOXBrowser.PWorksheetText(BLOX.BLOXBrowser.PText)>>evalAndPrintResult
[] in Behavior class(Behavior)>>evalString:to:ifError:
STInST.GSTFileInParser(STInST.RBParser)>>parserError:
STInST.STEvaluationDriver(STInST.STParsingDriver)>>parserError:
STInST.STCompiler>>compileError:
STInST.STCompiler>>lookupName:
STInST.STCompiler>>compileAssignmentFor:
STInST.STCompiler>>acceptAssignmentNode:
STInST.RBAssignmentNode>>acceptVisitor:
optimized [] in STInST.STCompiler>>compileStatements:
OrderedCollection(SequenceableCollection)>>keysAndValuesDo:
STInST.STCompiler>>compileStatements:
STInST.STCompiler>>acceptSequenceNode:
STInST.RBSequenceNode>>acceptVisitor:
STInST.STCompiler(STInST.RBProgramNodeVisitor)>>visitNode:
STInST.STCompiler class>>compile:asMethodOf:classified:parser:environment:
STInST.STEvaluationDriver>>evaluate:
STInST.GSTFileInParser(STInST.STFileParser)>>evaluate:
STInST.GSTFileInParser>>evaluate:
STInST.GSTFileInParser>>parseDoits
STInST.GSTFileInParser(STInST.STFileInParser)>>parseSmalltalk
STInST.GSTFileInParser class(STInST.STFileParser
class)>>parseSmalltalk:with:onError:
STInST.STEvaluationDriver(STInST.STParsingDriver)>>parseSmalltalk:with:onError:
Behavior class(Behavior)>>evalString:to:ifError:
Behavior class(Behavior)>>evaluate:to:ifError:
BLOX.BLOXBrowser.PWorksheetText(BLOX.BLOXBrowser.PText)>>doEval:ifError:
BLOX.BLOXBrowser.PWorksheetText>>doEval:ifError:
BLOX.BLOXBrowser.PWorksheetText(BLOX.BLOXBrowser.PText)>>evalAndPrintResult
DirectedMessage(Message)>>sendTo:
DirectedMessage>>send
BLOX.BMenuItem(BLOX.BMenuObject)>>invokeCallback
-----------------------------------------------------------------------------
 私はWorksheetをVisualWorksにおけるWorkspaceのようにとらえていたので以上のようにやりました。
 portsをバージョンアップしてやってみようと思います。ひょっとしたらファイルが壊れていてコンパイラがparseに失敗するのかもしれません。
 また、もしかしたらですがGUIからやってみて同じエラーに遭遇した人がいたら教えてください。



SML メーリングリストの案内