diff --git a/build.gradle b/build.gradle index d93faf13b05c46f29a9284156ad042874ee3a1fc..4a3549575f489cf610567d629d02c502422f66a4 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'eclipse' apply plugin: 'maven' -project.version = '3.2.6' +project.version = '3.2.8' project.group = 'de.stups' repositories { diff --git a/src/main/resources/org/sablecc/sablecc/lexer.txt b/src/main/resources/org/sablecc/sablecc/lexer.txt index 407382717a356c6c6045b656f0f90b10d04dc1c4..e0908c0285386fe1b12e8f3cef6540b705ba7d18 100644 --- a/src/main/resources/org/sablecc/sablecc/lexer.txt +++ b/src/main/resources/org/sablecc/sablecc/lexer.txt @@ -46,9 +46,14 @@ public class Lexer implements ITokenListContainer private final StringBuffer text = new StringBuffer(); private List<IToken> tokenList; + private final Queue<IToken> nextList = new LinkedBlockingQueue<IToken>(); private IToken tok; + public Queue<IToken> getNextList() { + return nextList; + } + public List<IToken> getTokenList() { return tokenList; } @@ -74,6 +79,7 @@ public class Lexer implements ITokenListContainer filter(); if (token != null) { getTokenList().add(token); + nextList.add(token); } } @@ -92,7 +98,7 @@ public class Lexer implements ITokenListContainer filterWrap(); } - return this.token; + return (Token) nextList.peek(); } public Token next() throws LexerException, IOException @@ -103,7 +109,7 @@ public class Lexer implements ITokenListContainer filterWrap(); } - Token result = this.token; + Token result = (Token) nextList.poll(); this.setToken(null); return result; } diff --git a/src/main/resources/org/sablecc/sablecc/utils.txt b/src/main/resources/org/sablecc/sablecc/utils.txt index 71cf7cd5711fb32591533a269c2420cfff58c752..98c8db0768659846510d232e57a324fc00bda5df 100644 --- a/src/main/resources/org/sablecc/sablecc/utils.txt +++ b/src/main/resources/org/sablecc/sablecc/utils.txt @@ -309,13 +309,13 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab return null; } - protected <T> List<T> cloneList(List<T> list) + protected <T extends Node> List<T> cloneList(List<T> list) { List<T> clone = new LinkedList<T>(); for(T n : list) { - clone.add(n); + clone.add((T) n.clone()); } return clone;