java词法分析源代码 java词法分析简单代码( 三 )


else if(ch == '=')
{
ch = exp.charAt(index);
index++;
if(ch == '=')
optr.add(new Word("==", 18));
else
{
index--;
optr.add(new Word("=", 16));
}
}
//或运算按位或
else if(ch == '|')
{
ch = exp.charAt(index);
index++;
if(ch == '|')
optr.add(new Word("||", 17));
else
{
index--;
optr.add(new Word("|", 20));
}
}
//与运算
else if(ch == '')
{
ch = exp.charAt(index);
index++;
if(ch == '')
optr.add(new Word("", 17));
else
{
index--;
optr.add(new Word("", 20));
}
}
//非运算或不等于
else if(ch == '!')
{
ch = exp.charAt(index);
index++;
if(ch == '=')
optr.add(new Word("!=", 18));
else
{
index--;
optr.add(new Word("!", 21));
}
}
//按位亦或
else if(ch == '^')
optr.add(new Word("^", 20));
//取模运算
else if(ch == '%')
optr.add(new Word("%", 20));
//左括号
else if(ch == '(')
optr.add(new Word("(", 22));
//右括号
else if(ch == ')')
optr.add(new Word(")", 23));
//左大括号
else if(ch == '{')
optr.add(new Word("{", 24));
//右大括号
else if(ch == '}')
optr.add(new Word("}", 25));
//结束扫描标志为:#?e_N_d?#
else if(ch == '\n')
{
break;
}
else if(ch == '#')
{
int tIndex = index - 1;
if(exp.length()tIndex+9)
{
String end = exp.substring(tIndex, tIndex+9);
if(end.equals("#?e_N_d?#"))
{
optr.add(new Word("#", 27));
break;
}
}
else
{
System.out.println("非法符号\'#\'后的语句忽略!");
optr.add(new Word("#", 27));
break;
}
}
//清空扫描串
strToken.setLength(0);
}
return optr;
}
}
我要做个JAVA词法分析工具,求JAVA的所有关键字和操作符我有Java API里面有所有的接口和类 , 以及类里的方法
赋值操作符:
= 赋值符号 。
+= 加等赋值 。
-= 减等赋值 。
*= 乘等赋值 。
/= 除等赋值 。
运算操作符:
+ 加运算符
- 减运算符
* 乘运算符
/ 除运算符
% 求余运算符
++ 自增1运算符
-- 自减1运算符
关系操作符:
小于 。
= 小于或者等于 。
大于 。
= 大于或者等于 。
== 等于 。
!= 不等于(大于或小于) 。
逻辑操作符:
?: if-then-else
逻辑与 。位操作符 。将左右表达式按二进制按位进行与操作(同位均为1则该位为1,否则为0) 。
与操作 。
| 逻辑或 。
|| 或操作 。
^ XOR 。
== 等于
!= 不等于
! 逻辑非操作 。

Abstract 抽象的
一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的 , 但是可以被其它类继承 。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现
break
一个Java的关键字,用来改变程序执行流程,立刻从当前语句的下一句开始执行从 。如果后面跟有一个标签 , 则从标签对应的地方开始执行
case
Java语言的关键字,用来定义一组分支选择,如果某个值和switch中给出的值一样,就会从该分支开始执行 。
catch
Java的一个关键字,用来声明当try语句块中发生运行时错误或非运行时异常时运行的一个块 。
char
Java语言的一个关键字 , 用来定义一个字符类型
continue
一个Java的关键字,用来打断当前循环过程,从当前循环的最后重新开始执行,如果后面跟有一个标签,则从标签对应的地方开始执行 。

推荐阅读