OSDN Git Service

アウトライン解析処理を修正
[coboled/CobolEditor.git] / src / coboled / editors / CobolParser.java
index 6827ac8..d9aebc7 100644 (file)
@@ -17,11 +17,11 @@ public class CobolParser {
                        CobolElement work = root;
                        while ((line = reader.readLine()) != null) {
                                // 部の記述があった場合
-                               Pattern pattern = Pattern.compile("^.{6}\\s\\s{0,3}([^\\s]*)\\s+(DIVISION)\\.", Pattern.CASE_INSENSITIVE);
+                               Pattern pattern = Pattern.compile("^.{6}\\s\\s{0,3}([^\\s]*)\\s+(DIVISION)(.*)\\.", Pattern.CASE_INSENSITIVE);
                                Matcher matcher = pattern.matcher(line);
                                boolean match = matcher.matches();
                                if (match) {
-                                       String name = matcher.group(1) + " " + matcher.group(2); 
+                                       String name = matcher.group(1).trim() + " " + matcher.group(2).trim(); 
                                        CobolElement element = new CobolElement(name, CobolElementType.DIVISION);
                                        CobolElement parent = getParentElement(work, element);
                                        element.setParent(parent);
@@ -33,11 +33,11 @@ public class CobolParser {
                                }
 
                                // 節の記述があった場合
-                               Pattern pattern2 = Pattern.compile("^.{6}\\s\\s{0,3}([^\\s]*)\\s+(SECTION)\\.", Pattern.CASE_INSENSITIVE);
+                               Pattern pattern2 = Pattern.compile("^.{6}\\s\\s{0,3}([^\\s]*)\\s+(SECTION)(.*)\\.", Pattern.CASE_INSENSITIVE);
                                Matcher matcher2 = pattern2.matcher(line);
                                boolean match2 = matcher2.matches();
                                if (match2) {
-                                       String name = matcher2.group(1) + " " + matcher2.group(2);
+                                       String name = matcher2.group(1).trim() + " " + matcher2.group(2).trim();
                                        CobolElement element = new CobolElement(name, CobolElementType.SECTION);
                                        CobolElement parent = getParentElement(work, element);
                                        element.setParent(parent);
@@ -49,11 +49,11 @@ public class CobolParser {
                                }
                                
                                // データ定義
-                               Pattern pattern4 = Pattern.compile("^.{6}\\s\\s{0,3}([0-9][0-9]\\s+[^\\s]*)(.*)", Pattern.CASE_INSENSITIVE);
-                               Matcher matcher4 = pattern4.matcher(line);
-                               boolean match4 = matcher4.matches();
-                               if (match4) {
-                                       String name = matcher4.group(1);
+                               Pattern pattern3 = Pattern.compile("^.{6}\\s\\s{0,3}([0-9][0-9])\\s+([^\\s]*)(.*)", Pattern.CASE_INSENSITIVE);
+                               Matcher matcher3 = pattern3.matcher(line);
+                               boolean match3 = matcher3.matches();
+                               if (match3) {
+                                       String name = matcher3.group(1).trim() + " " + matcher3.group(2).trim();
                                        CobolElement element = new CobolElement(name, CobolElementType.DATA);
                                        CobolElement parent = getParentElement(work, element);
                                        element.setParent(parent);
@@ -65,12 +65,12 @@ public class CobolParser {
                                }
                                
                                // 段落
-                               Pattern pattern3 = Pattern.compile("^.{6}\\s\\s{0,3}([^\\s]+)\\s*(.*)", Pattern.CASE_INSENSITIVE);
-                               Matcher matcher3 = pattern3.matcher(line);
-                               boolean match3 = matcher3.matches();
-                               if (match3) {
-                                       String name = matcher3.group(1);
-                                       if(name.indexOf("-EXIT") == -1) {
+                               Pattern pattern4 = Pattern.compile("^.{6}\\s\\s{0,3}([^\\s]+)\\s*(.*)", Pattern.CASE_INSENSITIVE);
+                               Matcher matcher4 = pattern4.matcher(line);
+                               boolean match4 = matcher4.matches();
+                               if (match4) {
+                                       String name = matcher4.group(1).trim();
+                                       if(name.indexOf("EXIT") == -1) {
                                                CobolElement element = new CobolElement(name, CobolElementType.PARAGRAPH);
                                                CobolElement parent = getParentElement(work, element);
                                                element.setParent(parent);