1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.github.maven_nar.cpptasks.parser;
21
22 public class FilenameState extends AbstractParserState {
23 private final StringBuffer buf = new StringBuffer();
24 private final char[] terminators;
25
26 public FilenameState(final AbstractParser parser, final char[] terminators) {
27 super(parser);
28 this.terminators = terminators.clone();
29 }
30
31 @Override
32 public AbstractParserState consume(final char ch) {
33 for (final char terminator : this.terminators) {
34 if (ch == terminator) {
35 getParser().addFilename(this.buf.toString());
36 this.buf.setLength(0);
37 return null;
38 }
39 }
40 if (ch == '\n') {
41 this.buf.setLength(0);
42 return getParser().getNewLineState();
43 } else {
44 this.buf.append(ch);
45 }
46 return this;
47 }
48 }