From c6938cafd443e4cdff4dd868e09b4886525afa4d Mon Sep 17 00:00:00 2001 From: batxo Date: Fri, 17 Dec 2010 00:31:03 +0900 Subject: [PATCH] =?utf8?q?=E3=82=A2=E3=82=A6=E3=83=88=E3=83=A9=E3=82=A4?= =?utf8?q?=E3=83=B3=E8=A7=A3=E6=9E=90=E5=87=A6=E7=90=86=E3=82=92=E4=BF=AE?= =?utf8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- META-INF/MANIFEST.MF | 4 +++- src/coboled/editors/CobolParser.java | 30 +++++++++++++++--------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF index 4f7d38f..31a0d5e 100644 --- a/META-INF/MANIFEST.MF +++ b/META-INF/MANIFEST.MF @@ -8,5 +8,7 @@ Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.jface.text, org.eclipse.ui.editors, - org.eclipse.ui.views + org.eclipse.ui.views, + org.eclipse.core.resources, + org.eclipse.ui.ide Eclipse-LazyStart: true diff --git a/src/coboled/editors/CobolParser.java b/src/coboled/editors/CobolParser.java index 6827ac8..d9aebc7 100644 --- a/src/coboled/editors/CobolParser.java +++ b/src/coboled/editors/CobolParser.java @@ -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); -- 2.11.0