⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 analysecases.java

📁 编译器中的词法分析
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
                                 if (content.charAt(j) == '+' || content.charAt(j) == '-' || content.charAt(j) == '*' ||
                                     content.charAt(j) == '/' || content.charAt(j) == '(' || content.charAt(j) == ')' ||
                                     content.charAt(j) == '[' || content.charAt(j) == ']' || content.charAt(j) == ';' ||
                                     content.charAt(j) == '{' || content.charAt(j) == '}' || content.charAt(j) == '=' ||
                                     content.charAt(j) == '<' || content.charAt(j) == '>' || content.charAt(j) == ' ' ||
                                     content.charAt(j) == '\n')
                                 {
                                     arrayToken.add(token);
                                     arrayType.add("error");
                                     errorType.add("非法数组");
                                     endPlace = j - 1;
                                     endPlaceArray.add(endPlace);
                                     break;
                                 }
                                 else if (j == content.length() - 1)
                                 {
                                     arrayToken.add(token);
                                     arrayType.add("error");
                                     errorType.add("非法数组");
                                     endPlace = j;
                                     endPlaceArray.add(endPlace);
                                     break;
                                 }
                                 else
                                 {
                                     token = token + content.charAt(j);
                                 }
                             }
                             break;
                         }
                         else if (i == content.length() - 1)
                         {
                             arrayToken.add(token);
                             arrayType.add("error");
                             errorType.add("非法数组");
                             endPlace = i;
                             endPlaceArray.add(endPlace);
                             //break;
                         }
                     }
                 }
                 else
                 {
                     arrayToken.add("[");
                     arrayType.add("error");
                     errorType.add("非法数组");
                     endPlace = startPlace;
                     endPlaceArray.add(endPlace);
                 }
                 break;
         }
     }

     /// <summary>
     /// 判断是否为数字
     /// </summary>
     /// <param name="startPlace"></param>
     /// <param name="curch"></param>
     /// <param name="content"></param>
     public void IsNumber(int startPlace, char curch, String content)
     {
         //int k;

         switch (curch)
         {
             case '0':
                 //token = curch.ToString();
                 token = java.lang.Character.toString(curch);

                 if (startPlace + 1 < content.length())
                 {
                     if (content.charAt(startPlace + 1) == '+' || content.charAt(startPlace + 1) == '-' || content.charAt(startPlace + 1) == '*' ||
                         content.charAt(startPlace + 1) == '/' || content.charAt(startPlace + 1) == '(' || content.charAt(startPlace + 1) == ')' ||
                         content.charAt(startPlace + 1) == '[' || content.charAt(startPlace + 1) == ']' || content.charAt(startPlace + 1) == ';' ||
                         content.charAt(startPlace + 1) == '{' || content.charAt(startPlace + 1) == '}' || content.charAt(startPlace + 1) == '=' ||
                         content.charAt(startPlace + 1) == '<' || content.charAt(startPlace + 1) == '>' || content.charAt(startPlace + 1) == ' ' ||
                         content.charAt(startPlace + 1) == '\n')
                     {
                         arrayToken.add(curch);
                         arrayType.add("数字");
                         errorType.add("correct");
                         endPlace = startPlace;
                         endPlaceArray.add(endPlace);
                     }

                     else if (content.charAt(startPlace + 1) == '.')
                     {
                         //token = curch.ToString();
                         token = java.lang.Character.toString(curch);
                         
                         token = token + '.';

                         if (content.charAt(startPlace + 1) == '.' && startPlace + 2 < content.length())
                         {
                             if (content.charAt(startPlace + 2) == '0' || content.charAt(startPlace + 2) == '1' || content.charAt(startPlace + 2) == '2' ||
                                 content.charAt(startPlace + 2) == '3' || content.charAt(startPlace + 2) == '4' || content.charAt(startPlace + 2) == '5' ||
                                 content.charAt(startPlace + 2) == '6' || content.charAt(startPlace + 2) == '7' || content.charAt(startPlace + 2) == '8' ||
                                 content.charAt(startPlace + 2) == '9')
                             {
                                 int start = startPlace + 2;
                                 token = token + content.charAt(startPlace + 2);

                                 if (start + 1 < content.length())
                                 {
                                     int dotNum = 1;
                                     int i = start + 1;
                                     boolean key = true;

                                     while (key)
                                     {
                                         switch (content.charAt(i))
                                         {
                                             case '0':
                                             case '1':
                                             case '2':
                                             case '3':
                                             case '4':
                                             case '5':
                                             case '6':
                                             case '7':
                                             case '8':
                                             case '9':
                                                 token = token + content.charAt(i);
                                                 if (i <= content.length() - 2)
                                                 {
                                                     endPlace = i;
                                                     i++;
                                                     continue;
                                                 }
                                                 else
                                                 {
                                                     arrayToken.add(token);
                                                     arrayType.add("数字");
                                                     errorType.add("correct");
                                                     endPlace = i;
                                                     endPlaceArray.add(endPlace);
                                                     key = false;
                                                     break;
                                                 }

                                             case '.':
                                                 token = token + content.charAt(i);
                                                 dotNum++;
                                                 if (dotNum > 1)
                                                 {
                                                     arrayToken.add(token);
                                                     arrayType.add("error");
                                                     errorType.add("非法数字");
                                                     endPlace = i;
                                                     endPlaceArray.add(endPlace);
                                                     key = false;
                                                     break;
                                                 }
                                                 else
                                                 {
                                                     if (i <= content.length() - 2)
                                                     {
                                                         endPlace = i;
                                                         i++;
                                                         continue;
                                                     }
                                                     else
                                                     {
                                                         arrayToken.add(token);
                                                         arrayType.add("数字");
                                                         errorType.add("correct");
                                                         endPlace = i;
                                                         endPlaceArray.add(endPlace);
                                                         key = false;
                                                         break;
                                                     }
                                                 }
                                             default:
                                                 key = false;

                                                 if (content.charAt(i) == '+' || content.charAt(i) == '-' || content.charAt(i) == '*' ||
                                                     content.charAt(i) == '/' || content.charAt(i) == '(' || content.charAt(i) == ')' ||
                                                     content.charAt(i) == '[' || content.charAt(i) == ']' || content.charAt(i) == ';' ||
                                                     content.charAt(i) == '{' || content.charAt(i) == '}' || content.charAt(i) == '=' ||
                                                     content.charAt(i) == '<' || content.charAt(i) == '>' || content.charAt(i) == ' ' ||
                                                     content.charAt(i) == '\n')
                                                 {
                                                     arrayToken.add(token);
                                                     arrayType.add("数字");
                                                     errorType.add("correct");
                                                     endPlace = i - 1;
                                                     endPlaceArray.add(endPlace);
                                                     break;
                                                 }
                                                 else
                                                 {
                                                     for (int j = i; j < content.length(); j++)
                                                     {
                                                         if (content.charAt(j) == '+' || content.charAt(j) == '-' || content.charAt(j) == '*' ||
                                                             content.charAt(j) == '/' || content.charAt(j) == '(' || content.charAt(j) == ')' ||
                                                             content.charAt(j) == '[' || content.charAt(j) == ']' || content.charAt(j) == ';' ||
                                                             content.charAt(j) == '{' || content.charAt(j) == '}' || content.charAt(j) == '=' ||
                                                             content.charAt(j) == '<' || content.charAt(j) == '>' || content.charAt(j) == ' ' ||
                                                             content.charAt(j) == '\n')
                                                         {
                                                             arrayToken.add(token);
                                                             arrayType.add("error");
                                                             errorType.add("非法数字");
                                                             endPlace = j - 1;
                                                             endPlaceArray.add(endPlace);
                                                             break;
                                                         }
                                                         else if (j == content.length() - 1)
                                                         {
                                                             token = token + content.charAt(j);
                                                             arrayToken.add(token);
                                                             arrayType.add("error");
                                                             errorType.add("非法数字");
                                                             endPlace = j;
                                                             endPlaceArray.add(endPlace);
                                                             break;
                                                         }
                                                         else
                                                         {
                                                             token = token + content.charAt(j);
                                                         }
                                                     }
                                                 }
                                                 break;
                                         }
                                     }  
                                 }
                                 else
                                 {
                                     arrayToken.add(curch);
                                     arrayType.add("数字");
                                     errorType.add("correct");
                                     endPlace = startPlace;
                                     endPlaceArray.add(endPlace);
                                 }
                                 break;
                             }
                             else
                             {
                                 for (int i = startPlace + 2; i < content.length(); i++)
                                 {
                                     if (content.charAt(i) == '+' || content.charAt(i) == '-' || content.charAt(i) == '*' ||
                                         content.charAt(i) == '/' || content.charAt(i) == '(' || content.charAt(i) == ')' ||
                                         content.charAt(i) == '[' || content.charAt(i) == ']' || content.charAt(i) == ';' ||
                                         content.charAt(i) == '{' || content.charAt(i) == '}' || content.charAt(i) == '=' ||
                                         content.charAt(i) == '<' || content.charAt(i) == '>' || content.charAt(i) == ' ' ||
                                         content.charAt(i) == '\n')
                                     {
                                         arrayToken.add(token);
                                         arrayType.add("error");
                                         errorType.add("非法数字");
                                         endPlace = i - 1;
                                         endPlaceArray.add(endPlace);
                                         break;
                                     }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -