use ArrayList instead of LinkedList in ParserImpl
diff --git a/src/main/java/org/yaml/snakeyaml/parser/ParserImpl.java b/src/main/java/org/yaml/snakeyaml/parser/ParserImpl.java
index f840f24..649a6ae 100644
--- a/src/main/java/org/yaml/snakeyaml/parser/ParserImpl.java
+++ b/src/main/java/org/yaml/snakeyaml/parser/ParserImpl.java
@@ -17,7 +17,6 @@
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -136,8 +135,8 @@
private Event currentEvent;
private List<Integer> yamlVersion;
private Map<String, String> tagHandles;
- private final LinkedList<Production> states;
- private final LinkedList<Mark> marks;
+ private final ArrayList<Production> states;
+ private final ArrayList<Mark> marks;
private Production state;
public ParserImpl(org.yaml.snakeyaml.reader.Reader reader) {
@@ -145,8 +144,8 @@
currentEvent = null;
yamlVersion = null;
tagHandles = new HashMap<String, String>();
- states = new LinkedList<Production>();
- marks = new LinkedList<Mark>();
+ states = new ArrayList<Production>();
+ marks = new ArrayList<Mark>();
state = new ParseStreamStart();
}
@@ -317,7 +316,7 @@
Event event;
if (scanner.checkToken(choices)) {
event = processEmptyScalar(scanner.peekToken().getStartMark());
- state = states.removeLast();
+ state = states.remove(states.size() - 1);
return event;
} else {
Production p = new ParseBlockNode();
@@ -413,7 +412,7 @@
if (scanner.checkToken(AliasToken.class)) {
AliasToken token = (AliasToken) scanner.getToken();
event = new AliasEvent(token.getValue(), token.getStartMark(), token.getEndMark());
- state = states.removeLast();
+ state = states.remove(states.size() - 1);
} else {
String anchor = null;
String[] tagTokenTag = null;
@@ -479,7 +478,7 @@
}
event = new ScalarEvent(anchor, tag, implicitValues, token.getValue(),
startMark, endMark, token.getStyle());
- state = states.removeLast();
+ state = states.remove(states.size() - 1);
} else if (scanner.checkToken(FlowSequenceStartToken.class)) {
endMark = scanner.peekToken().getEndMark();
event = new SequenceStartEvent(anchor, tag, implicit, startMark, endMark,
@@ -505,7 +504,7 @@
// specified.
event = new ScalarEvent(anchor, tag, new ImplicitTuple(implicit, false), "",
startMark, endMark, (char) 0);
- state = states.removeLast();
+ state = states.remove(states.size() - 1);
} else {
String node;
if (block) {
@@ -551,14 +550,14 @@
}
if (!scanner.checkToken(BlockEndToken.class)) {
Token token = scanner.peekToken();
- throw new ParserException("while parsing a block collection", marks.getLast(),
- "expected <block end>, but found " + token.getTokenId(), token
- .getStartMark());
+ throw new ParserException("while parsing a block collection", marks.get(marks
+ .size() - 1), "expected <block end>, but found " + token.getTokenId(),
+ token.getStartMark());
}
Token token = scanner.getToken();
Event event = new SequenceEndEvent(token.getStartMark(), token.getEndMark());
- state = states.removeLast();
- marks.removeLast();
+ state = states.remove(states.size() - 1);
+ marks.remove(marks.size() - 1);
return event;
}
}
@@ -584,7 +583,7 @@
}
Token token = scanner.peekToken();
Event event = new SequenceEndEvent(token.getStartMark(), token.getEndMark());
- state = states.removeLast();
+ state = states.remove(states.size() - 1);
return event;
}
}
@@ -615,14 +614,14 @@
}
if (!scanner.checkToken(BlockEndToken.class)) {
Token token = scanner.peekToken();
- throw new ParserException("while parsing a block mapping", marks.getLast(),
- "expected <block end>, but found " + token.getTokenId(), token
- .getStartMark());
+ throw new ParserException("while parsing a block mapping", marks
+ .get(marks.size() - 1), "expected <block end>, but found "
+ + token.getTokenId(), token.getStartMark());
}
Token token = scanner.getToken();
Event event = new MappingEndEvent(token.getStartMark(), token.getEndMark());
- state = states.removeLast();
- marks.removeLast();
+ state = states.remove(states.size() - 1);
+ marks.remove(marks.size() - 1);
return event;
}
}
@@ -684,9 +683,9 @@
scanner.getToken();
} else {
Token token = scanner.peekToken();
- throw new ParserException("while parsing a flow sequence", marks.getLast(),
- "expected ',' or ']', but got " + token.getTokenId(), token
- .getStartMark());
+ throw new ParserException("while parsing a flow sequence", marks.get(marks
+ .size() - 1), "expected ',' or ']', but got " + token.getTokenId(),
+ token.getStartMark());
}
}
if (scanner.checkToken(KeyToken.class)) {
@@ -702,8 +701,8 @@
}
Token token = scanner.getToken();
Event event = new SequenceEndEvent(token.getStartMark(), token.getEndMark());
- state = states.removeLast();
- marks.removeLast();
+ state = states.remove(states.size() - 1);
+ marks.remove(marks.size() - 1);
return event;
}
}
@@ -786,9 +785,9 @@
scanner.getToken();
} else {
Token token = scanner.peekToken();
- throw new ParserException("while parsing a flow mapping", marks.getLast(),
- "expected ',' or '}', but got " + token.getTokenId(), token
- .getStartMark());
+ throw new ParserException("while parsing a flow mapping", marks.get(marks
+ .size() - 1), "expected ',' or '}', but got " + token.getTokenId(),
+ token.getStartMark());
}
}
if (scanner.checkToken(KeyToken.class)) {
@@ -811,8 +810,8 @@
}
Token token = scanner.getToken();
Event event = new MappingEndEvent(token.getStartMark(), token.getEndMark());
- state = states.removeLast();
- marks.removeLast();
+ state = states.remove(states.size() - 1);
+ marks.remove(marks.size() - 1);
return event;
}
}