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);
}
// 節の記述があった場合
- 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);
}
// データ定義
- 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);
}
// 段落
- 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);