diff --git a/AlgebraicDataflowArchitectureModel/src/parser/Parser.java b/AlgebraicDataflowArchitectureModel/src/parser/Parser.java index 4bf124a..b42a607 100644 --- a/AlgebraicDataflowArchitectureModel/src/parser/Parser.java +++ b/AlgebraicDataflowArchitectureModel/src/parser/Parser.java @@ -61,6 +61,9 @@ public static final String DOT_REGX = "\\."; public static final String DOUBLE_QUOT = "\""; + public static final String SINGLE_LINE_COMMENT = "//"; + public static final String SINGLE_LINE_COMMENT_REGX = "\\/\\/"; + public Parser(final TokenStream stream) { this.stream = stream; } @@ -730,7 +733,10 @@ public void addLine(String line) { lines.add(line); - line = line.trim(); + line = removeComments(line.trim()); + if (line.isBlank()) { + return; + } ArrayList tokenList = splitByDoubleQuotation(line); tokenList = splitBy(tokenList, ADD, ADD_REGX); tokenList = splitBy(tokenList, MUL, MUL_REGX); @@ -785,6 +791,25 @@ return newTokens; } + /** + * Removes single-line comment from given line. + * + * @param line The line of text to be processed + * @return The line of text without single-line comment. + * @author Shohei Yamagiwa + */ + private String removeComments(String line) { + StringBuilder result = new StringBuilder(); + String[] tokens = line.split(" "); + for (String token : tokens) { + if (token.equals(SINGLE_LINE_COMMENT)) { + break; + } + result.append(token).append(" "); + } + return result.toString(); + } + private ArrayList splitByDoubleQuotation(String line) { ArrayList newTokens = new ArrayList<>(); String[] tokens = line.split(DOUBLE_QUOT);