当我尝试执行first-n-integers扩展示例时:
显示噪音:first-n-integers 5
我在控制台或代码选项卡中收到错误“ERROR:Expected command。”。 我大部分都是按原样复制和粘贴类示例,只是重命名它们并将它们放在不同的包中。我希望错误更具描述性,因为我怀疑我在某个地方犯了一个简单的错误。
我在x64 Windows 7计算机上使用5.0.4而没有JRE和1.7.0_45 JRE / JDK。
我的manifest.txt文件在版本行的末尾带有完全限定的类管理器和crlf -
Manifest-Version: 1.0
Extension-Name: noise
Class-Manager: org.xyz.extensions.NoiseExtension
NetLogo-Extension-API-Version: 5.0 <--there is a crlf here
jar在我的模型文件
的子文件夹中test/
test.nlogo
noise/
noise.jar
这是我的班主任:
package org.xyz.extensions;
import org.nlogo.api.*;
public class NoiseExtension extends DefaultClassManager {
public void load(PrimitiveManager primitiveManager) {
primitiveManager.addPrimitive(
"first-n-integers", new org.xyz.extensions.NoiseGenerator());
}
}
这是NoiseGenerator文件:
package org.xyz.extensions;
import org.nlogo.api.*;
public class NoiseGenerator extends DefaultReporter {
public Syntax getSyntax() {
return Syntax.reporterSyntax(
new int[] {Syntax.NumberType()}, Syntax.ListType());
}
public Object report(Argument args[], Context context) throws ExtensionException {
// create a NetLogo list for the result
LogoListBuilder list = new LogoListBuilder();
int n ;
// use typesafe helper method from
// org.nlogo.api.Argument to access argument
try {
n = args[0].getIntValue();
}
catch(LogoException e) {
throw new ExtensionException( e.getMessage() ) ;
}
if (n < 0) {
// signals a NetLogo runtime error to the modeler
throw new ExtensionException
("input must be positive");
}
// populate the list. note that we use Double objects; NetLogo
// numbers are always Doubles
for (int i = 0; i < n; i++) {
list.add(Double.valueOf(i));
}
return list.toLogoList();
} }
感谢您的帮助。
AJB
答案 0 :(得分:1)
这是在这里被问到并回答的:
https://groups.google.com/d/msg/netlogo-devel/eIq8drflsc8/7y_Ooh6R0sgJ
答案是纠正getSynax
到getSyntax
的拼写。