testnescparser.java
来自「plugin for eclipse」· Java 代码 · 共 95 行
JAVA
95 行
package isis.anp.test;
import isis.anp.common.ParserConfiguration;
import isis.anp.common.ParserMessage;
import isis.anp.config.ParserConfigurationFactory;
import isis.anp.config.PlatformProfile;
import isis.anp.config.SensorBoardProfile;
import isis.anp.nesc.common.NesCParserContext;
import isis.commons.fs.Dir;
import isis.commons.fs.SearchPath;
import java.io.File;
public class TestNesCParser {
public static void main(String[] args) {
new TestNesCParser().test();
}
public void test() {
File tmpDir = null;
String tmpDirPath = "nescparser_tmp";
try {
// Create temp dir
tmpDir = new File(tmpDirPath);
tmpDir.mkdir();
String tosDir = "c:/tinyos-1.x/tos";
String appDir = tosDir + "/../apps/Blink";
String programName = "Blink.nc";
// Build the user include directories (app dir, lib dirs, etc)
SearchPath userSearchPathList = new SearchPath();
userSearchPathList.add(appDir);
userSearchPathList.add(tosDir + "/lib/Counters");
userSearchPathList.add(tosDir + "/lib/Deluge");
userSearchPathList.add(tosDir + "/lib/Deluge/TOSBoot/include");
// Load platform specific defaults.
PlatformProfile platformProfile = PlatformProfile.load("mica2");
SensorBoardProfile sensorBoardProfile = SensorBoardProfile
.load("none");
// Create parser configration.
ParserConfiguration parserConfig = ParserConfigurationFactory
.create(tosDir, tmpDirPath, platformProfile,
sensorBoardProfile, userSearchPathList, null);
NesCParserContext ctx = new NesCParserContext(parserConfig);
// Parse
System.out.println("Parsing: ---------------------------------------------------------------");
ParserMessage container = new ParserMessage(ParserMessage.INFO, "Component file: "+programName, null, null);
ctx.pushMessages(container);
try {
ctx.getAST(programName);
} catch(ParserMessage m) {
ctx.addMsg(m);
}
// Pring errors.
System.out
.println("Errors: ----------------------------------------------------------------");
System.out.println(ctx.getMessages().toString());
// // Show ASTs
// Iterator i = ctx.getProcessedASTs().iterator();
// while(i.hasNext()) {
// TNode ast = (TNode)i.next();
// ASTFrameFactory.create(ast, ast.getFileName());
// }
//
//
// // Print symbol table
// System.out.println("Symbol table: ----------------------------------------------------------");
// System.out.println(ctx.getSymbolTable().toString());
} catch (Exception e) {
System.err.println("exception: " + e);
e.printStackTrace();
} finally {
// call GC to make sure all files get closed
System.gc();
// delete the temp dir
Dir.rmDir(tmpDir,true);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?