--- /dev/null
+/*\r
+ * \r
+ * Copyright 2002-2004 The Ant-Contrib project\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+package net.sf.antcontrib.cpptasks.parser;\r
+public class FilenameState extends AbstractParserState {\r
+ private final StringBuffer buf = new StringBuffer();\r
+ private final char[] terminators;\r
+ public FilenameState(AbstractParser parser, char[] terminators) {\r
+ super(parser);\r
+ this.terminators = (char[]) terminators.clone();\r
+ }\r
+ public AbstractParserState consume(char ch) {\r
+ for (int i = 0; i < terminators.length; i++) {\r
+ if (ch == terminators[i]) {\r
+ getParser().addFilename(buf.toString());\r
+ buf.setLength(0);\r
+ return null;\r
+ }\r
+ }\r
+ if (ch == '\n') {\r
+ buf.setLength(0);\r
+ return getParser().getNewLineState();\r
+ } else {\r
+ buf.append(ch);\r
+ }\r
+ return this;\r
+ }\r
+}\r