878ddf1f |
1 | /*\r |
2 | * \r |
3 | * Copyright 2002-2004 The Ant-Contrib project\r |
4 | *\r |
5 | * Licensed under the Apache License, Version 2.0 (the "License");\r |
6 | * you may not use this file except in compliance with the License.\r |
7 | * You may obtain a copy of the License at\r |
8 | *\r |
9 | * http://www.apache.org/licenses/LICENSE-2.0\r |
10 | *\r |
11 | * Unless required by applicable law or agreed to in writing, software\r |
12 | * distributed under the License is distributed on an "AS IS" BASIS,\r |
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r |
14 | * See the License for the specific language governing permissions and\r |
15 | * limitations under the License.\r |
16 | */\r |
17 | package net.sf.antcontrib.cpptasks.parser;\r |
18 | /**\r |
19 | * An base class for objects that represent the state of an AbstractParser.\r |
20 | * \r |
21 | * @author CurtArnold\r |
22 | * @see AbstractParser\r |
23 | */\r |
24 | public abstract class AbstractParserState {\r |
25 | private AbstractParser parser;\r |
26 | protected AbstractParserState(AbstractParser parser) {\r |
27 | if (parser == null) {\r |
28 | throw new NullPointerException("parser");\r |
29 | }\r |
30 | this.parser = parser;\r |
31 | }\r |
32 | /**\r |
33 | * Consume a character\r |
34 | * \r |
35 | * @return new state, may be null to ignore the rest of the line\r |
36 | */\r |
37 | public abstract AbstractParserState consume(char ch);\r |
38 | protected AbstractParser getParser() {\r |
39 | return parser;\r |
40 | }\r |
41 | }\r |