语法分析代码java java语言词法分析器
java StaticDemo1.java:27: 错误: 进行语法分析时已到达文件结尾
可能你多写了大括号。java编程大部分都是用MyEclipse 编程,而我们很少用dos进行编译,提示错误信息也不熟悉,你最好还是把代码贴出来
成都创新互联专注于企业营销型网站、网站重做改版、巴宜网站定制设计、自适应品牌网站建设、H5技术、商城开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为巴宜等各大城市提供网站开发制作服务。
public Static talk()改成:public String talk()
这么简单错误还没解决啊- -!!!
public String talk()
{
return "我是:"+this.name+",今年:"+this.age+"岁,来自:"+this.city;
}---这大括号我没看到- -,改成这样就可以了,你return的String类型所以talk方法前面要加String类型返回值
用Java怎么解析C/C++代码生成AST抽象语法树结构
其中一个明显的例子是Eclipse CDT里的parser。
它是完全用Java实现的,手写的递归下降parser,能把C或C++源码parse成AST供Eclipse CDT的IDE功能使用。它支持C99语法(包括GCC扩展)、C++语法(我没仔细看现在支持到什么版本了)等。
它并不用于实际的编译(这跟Eclipse JDT里的Eclipse Compiler for Java不同);实际编译还是交给诸如GCC、xlc之类的编译器去完成。
关于Eclipse CDT里的C与C++ parser的介绍,请参考
java字符串如何解析成能运行的java代码?
java字符串如何解析成运行的java代码
有些情况下,不得不动态运行Java代码,以便提供更加灵活的方式,以下代码可参考(在JDK 1.5+平台上运行通过):
public static void main(String[] args) {
int i = 10;
String code = "System.out.println(\"Hello World!\"+(13+2*5/3));";
code += "for(int i=0;i" + i + ";i++){";
code += " System.out.println(Math.pow(i,2));";
code += "}";
try {
run(code);
} catch (Exception e) {
e.printStackTrace();
}
}
private synchronized static File compile(String code) throws Exception {
File file = File.createTempFile("JavaRuntime", ".java", new File(System.getProperty("user.dir")));
file.deleteOnExit();
// 获得类名
String classname = getBaseFileName(file);
// 将代码输出到文件
PrintWriter out = new PrintWriter(new FileOutputStream(file));
out.println(getClassCode(code, classname));
out.close();
// 编译生成的java文件
String[] cpargs = new String[] { "-d",
System.getProperty("user.dir") + "\\WebRoot\\WEB-INF\\classes",
file.getName() };
int status = Main点抗 pile(cpargs);
if (status != 0) {
throw new Exception("语法错误!");
}
return file;
}
private static synchronized void run(String code) throws Exception {
String classname = getBaseFileName(compile(code));
new File(System.getProperty("user.dir")
+ "\\WebRoot\\WEB-INF\\classes\\" + classname + ".class")
.deleteOnExit();
try {
Class cls = Class.forName(classname);
Method main = cls.getMethod("method", null);
main.invoke(cls, null);
} catch (Exception se) {
se.printStackTrace();
}
}
private static String getClassCode(String code, String className) {
StringBuffer text = new StringBuffer();
text.append("public class " + className + "{\n");
text.append(" public static void method(){\n");
text.append(" " + code + "\n");
text.append(" }\n");
text.append("}");
return text.toString();
}
private static String getBaseFileName(File file) {
String fileName = file.getName();
int index = fileName.indexOf(".");
String result = "";
if (index != -1) {
result = fileName.substring(0, index);
} else {
result = fileName;
}
return result;
}
java语法错误,进行分析时已经到达文件结尾
原因:
分析已达到文件结尾一般是括号没有闭合,或者缺少了分号
解决方案:
手工查看括号闭合情况
使用带自动对齐功能的编辑器如eclipse,notepad++
建议平时编程时多注意积累错误经验,语法错误不应当耗费太多时间
拓展资料:
Java的组成:
Java编程语言
Java类文件格式
Java虚拟机
Java应用程序接口
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类 ,通过调用类(这些类实现了Java API)中的方法来访问资源系统,
把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用
参考资料:百度百科_Java
分享名称:语法分析代码java java语言词法分析器
网站链接:http://scyanting.com/article/ddjojhj.html