句法分析java代码 语法句型分析

java语法错误,进行分析时已经到达文件结尾

原因:

10年积累的成都网站设计、成都网站建设、外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有济源免费网站建设让你可以放心的选择与我们合作。

分析已达到文件结尾一般是括号没有闭合,或者缺少了分号

解决方案:

手工查看括号闭合情况

使用带自动对齐功能的编辑器如eclipse,notepad++

建议平时编程时多注意积累错误经验,语法错误不应当耗费太多时间

拓展资料:

Java的组成:

Java编程语言

Java类文件格式

Java虚拟机

Java应用程序接口

当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类   ,通过调用类(这些类实现了Java API)中的方法来访问资源系统,

把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用

参考资料:百度百科_Java

用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小程序语法问题

估计这个要打些字呢。

先说第一个问题吧。

//这句话中怎么调用的compare方法 给详细讲解下

这个问题主要就是解释下这句话a[j].compare(a[j+1]) 。

我们不用考虑这么多日期,就拿两个日期来讲吧,道理是一样的。

假设是a1.compare(a2),执行这行代码的时候就会进入public int compare(Date date) {}方法。你的一系列问题也在这里啊。

------------------------------------------------------------------

public int compare(Date date) { //我不明白这里的(Date date)是什么意思 进来的时候是2个参数?

----------------------------------------------------华丽的分割线

这个是传进来一个参数,举个例子,假设方法我改造如下:

public int compare(int date)

public int compare(String date)

public int compare(double date)

你能明白上面三个方法的意思么。就是传进来一个参数date,第一个它的类型是int,第二个是string 最后一个是double类型。同理public int compare(Date date)的意思就是传进来一个参数date它的类型是Date。不要被小写的date搞的迷惑了 也可以写成public int compare(Date a2)道理是一样的。date只不过是个名称,Date是这个参数名称的类型。

---------------------------------------------------------------

//到这句话中哪个是year哪个是date.year

----------------------------------------------------华丽的分割线ag

我把上面代码改写下,你会清楚些。

public int compare(Date date) {

return this.year date.year ? 1

: this.year date.year ? -1 : this.month date.month ? 1

: this.month date.month ? -1

: this.day date.day ? 1

: this.day date.day ? -1 : 0;

}

我在一些变量前面加上了this。代表对象本身。举个例子:

a1.compare(a2) 就是对象a1调用他的compare方法。而a2是做为Date型参数传进来,结果就相当于下面:(实际代码不能这么写,只是示范)

public int compare(Date a2) {

return a1.year a2.year ? 1

: a1.year a2.year ? -1 : a1.month a2.month ? 1

: a1.month a2.month ? -1

: a1.day a2.day ? 1

: a1.day a2.day ? -1 : 0;

明白了吗?year前面默认不加上"this"的话,也还是指对象本身的属性,新手常常会混淆。

---------------------------------------------------------------------

三目的这个运算明白 给讲讲上面的语法就行

--------------------------------------------------------------------囧

这个比较难讲了 大概说下吧。

1. a1.year a2.year ? 1

2. : a1.year a2.year ? -1 3. : a1.month a2.month ? 1

4. : a1.month a2.month ? -1

5. : a1.day a2.day ? 1

6. : a1.day a2.day ? -1 : 0);

先解释下运算符 a1 a2 ? 1:0 这句话的意思是如果a1大于a2是真的话,就取问号后面的第一个数,也就是1.是假的话就取冒号后面的0.

接着解释上面代码。 第一行 如果a1的年大于a2的年,那么好说,后面不必比较了a1这个日期肯定大于a2,直接返回1.但是如果是假d的话,就要取冒号后面的参数也就是2-6行的所以代码。2-6行里面又嵌套了几个运算符,第2行的意思就是如果a1的年小于a2的年,那么返回-1,也还是不用比较了,你a1的年份就是比我a2小了,这时候如果a1等于a2年份的话,就不返回-1了还要继续比较月份,也就是后面的代码,3行的代码。以后我就不解释了,你自己揣摩揣摩吧,就说这么多了,手疼。。

java进行语法解析时已到达文件结尾?

package test;

/**

* @author yinmang

*/

import java.util.*;

public class Check {

public static void main(String args[]) {

int chinput[] = new int[7];

int ch[] = new int[7];

// 接受彩票号码

System.out.println("请输入你的彩票号码:");

for (int i = 0; i 7; i++) {

chinput[i] = new Scanner(System.in).nextInt();

if (chinput[i] 35 || chinput[i] 0) {

i--;

System.out.println("您输入的号码超出范围!");

continue;

}

for (int j = 0; j i; j++) {

if (chinput[i] == chinput[j]) {

i--;

System.out.println("您输入的号码重复!");

break;

}

}

}

System.out.println("您输入的号码是:");

for (int i1 = 0; i1 7; i1++) {

System.out.println(chinput[i1] + "");

}

System.out.println();

// 产生七个不同的随机数

for (int i2 = 0; i2 7; i2++) {

ch[i2] = (int) (Math.random() * 35 + 1);

for (int j = 0; j i2; j++) {

if (ch[i2] == ch[j]) {

i2--;

break;

}

}

}

// 打印七个随机数

System.out.println("中国福利彩票35选7:");

for (int i3 = 0; i3 7; i3++) {

System.out.println(ch[i3] + "");

}

System.out.println();

// 中奖判断

System.out.println("您所中的号码");

for (int i4 = 0; i4 7; i4++) {

for (int j = 0; j 7; j++) {

if (ch[i4] == chinput[j]) {

System.out.println(ch[i4]);

break;

}

}

}

}

}

你发上来的代码错误太多,在下改了下。

至于你的到文件结束的错误不能找出原因。

java:进行语法解析时已到达文件结尾?

//少个括号,修改如下

class Box

{

public int l;

public int w;

public int h;

set Demo(int x,int y,int z)

{l=x;

w=y;

h=z;

}

}

public class c2

{

int x=10,y=20,z=30;

public static void main(String[] args)

{

Box b=new Box();

b.setDemo(10,20,30);

b.gettiji(x*y*z);

System.out.println("tiji="+b.gettiji);

}

}

请采纳。


网页标题:句法分析java代码 语法句型分析
分享URL:http://scyanting.com/article/hejpoi.html