diff --git a/src/org/antlr/works/IDE.java b/src/org/antlr/works/IDE.java index e6a4088b..cbcac03c 100644 --- a/src/org/antlr/works/IDE.java +++ b/src/org/antlr/works/IDE.java @@ -278,7 +278,7 @@ public String getMessage() { } public static String getApplicationPath() { - Class c = XJApplication.getAppDelegate().getClass(); + Class c = XJApplication.getAppDelegate().getClass(); URL url = c.getProtectionDomain().getCodeSource().getLocation(); String p; if(url == null) { @@ -332,7 +332,7 @@ public static String getApplicationPath() { return p; } - public static void debugVerbose(Console console, Class c, String s) { + public static void debugVerbose(Console console, Class c, String s) { if(AWPrefs.getDebugVerbose()) { String message = c.getName()+": "+s; if(console != null) @@ -398,7 +398,7 @@ public void appWillTerminate() { StatisticsAW.shared().close(); } - public Class appPreferencesPanelClass() { + public Class appPreferencesPanelClass() { return AWPrefsDialog.class; } @@ -418,7 +418,7 @@ public boolean useDesktopMode() { return AWPrefs.getUseDesktopMode(); } - public Class appPreferencesClass() { + public Class appPreferencesClass() { return IDE.class; } diff --git a/src/org/antlr/works/ate/swing/ATERenderingToken.java b/src/org/antlr/works/ate/swing/ATERenderingToken.java index ac386d10..618643a9 100644 --- a/src/org/antlr/works/ate/swing/ATERenderingToken.java +++ b/src/org/antlr/works/ate/swing/ATERenderingToken.java @@ -37,7 +37,7 @@ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */ -public abstract class ATERenderingToken implements Comparable { +public abstract class ATERenderingToken implements Comparable { protected int index; @@ -52,11 +52,10 @@ public void setIndex(int index) { public abstract void drawToken(ATERenderingView view, ATERenderingToken t, Graphics g, FontMetrics metrics, int x, int y, char c, Document doc, AttributeSet attribute, Segment text) throws BadLocationException; - public int compareTo(Object o) { - if(!(o instanceof ATERenderingToken)) return 0; - ATERenderingToken other = (ATERenderingToken) o; - if(index > other.index) return 1; - if(index < other.index) return -1; + public int compareTo(ATERenderingToken o) { + if(o == null) return 1; + if(index > o.index) return 1; + if(index < o.index) return -1; return 0; } } diff --git a/src/org/antlr/works/ate/syntax/generic/ATESyntaxParser.java b/src/org/antlr/works/ate/syntax/generic/ATESyntaxParser.java index 3370a5e8..58011c2f 100644 --- a/src/org/antlr/works/ate/syntax/generic/ATESyntaxParser.java +++ b/src/org/antlr/works/ate/syntax/generic/ATESyntaxParser.java @@ -1,9 +1,9 @@ package org.antlr.works.ate.syntax.generic; +import java.util.ArrayList; +import java.util.List; import org.antlr.works.ate.syntax.misc.ATEToken; -import java.util.List; -import java.util.Stack; /* [The "BSD licence"] @@ -38,7 +38,7 @@ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT public abstract class ATESyntaxParser { private List tokens; - private Stack marks = new Stack(); + private List marks = new ArrayList(); private int position; private ATEToken t0; @@ -73,11 +73,11 @@ public int getPosition() { } public void mark() { - marks.push(position); + marks.add(position); } public void rewind() { - position = marks.pop(); + position = marks.remove(marks.size() - 1); clearTokenCache(); } diff --git a/src/org/antlr/works/ate/syntax/misc/ATEToken.java b/src/org/antlr/works/ate/syntax/misc/ATEToken.java index 3cc7c2c5..d38f416b 100644 --- a/src/org/antlr/works/ate/syntax/misc/ATEToken.java +++ b/src/org/antlr/works/ate/syntax/misc/ATEToken.java @@ -31,7 +31,7 @@ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT package org.antlr.works.ate.syntax.misc; -public class ATEToken implements Comparable { +public class ATEToken implements Comparable { public int type; @@ -112,13 +112,12 @@ public boolean equals(Object otherObject) { } } - public int compareTo(Object o) { - if(o instanceof ATEToken) { - ATEToken otherToken = (ATEToken)o; - return this.getAttribute().compareTo(otherToken.getAttribute()); - } else { + public int compareTo(ATEToken o) { + if (o == null) { return 1; } + + return this.getAttribute().compareTo(o.getAttribute()); } public String toString() { diff --git a/src/org/antlr/works/components/GrammarDocumentFactory.java b/src/org/antlr/works/components/GrammarDocumentFactory.java index e8d37025..d0f3b361 100644 --- a/src/org/antlr/works/components/GrammarDocumentFactory.java +++ b/src/org/antlr/works/components/GrammarDocumentFactory.java @@ -2,7 +2,9 @@ import org.antlr.works.utils.Localizable; import org.antlr.xjlib.appkit.document.XJDataPlainText; -import org.antlr.xjlib.appkit.document.XJDocumentFactory;/* +import org.antlr.xjlib.appkit.document.XJDocumentFactory; +import org.antlr.xjlib.appkit.frame.XJWindow; +/* [The "BSD licence"] Copyright (c) 2005-07 Jean Bovet @@ -36,7 +38,7 @@ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT public class GrammarDocumentFactory extends XJDocumentFactory { // todo provide factory? - public GrammarDocumentFactory(Class windowClass) { + public GrammarDocumentFactory(Class windowClass) { super(GrammarDocument.class, windowClass, XJDataPlainText.class, diff --git a/src/org/antlr/works/components/GrammarWindow.java b/src/org/antlr/works/components/GrammarWindow.java index 518805c1..443c87f3 100644 --- a/src/org/antlr/works/components/GrammarWindow.java +++ b/src/org/antlr/works/components/GrammarWindow.java @@ -1129,7 +1129,7 @@ public void rulesDidChange() { interpreterTab.updateIgnoreTokens(getRules()); } - public JPopupMenu rulesGetContextualMenu(List selectedObjects) { + public JPopupMenu rulesGetContextualMenu(List selectedObjects) { if(selectedObjects.isEmpty()) return null; diff --git a/src/org/antlr/works/debugger/DebuggerEngine.java b/src/org/antlr/works/debugger/DebuggerEngine.java index e15f013a..0bb31623 100644 --- a/src/org/antlr/works/debugger/DebuggerEngine.java +++ b/src/org/antlr/works/debugger/DebuggerEngine.java @@ -225,10 +225,8 @@ public static String compileFiles(Console console, String[] files, String output System.arraycopy(files, 0, args, 2, files.length); Class javac = Class.forName("com.sun.tools.javac.Main"); - Class[] p = new Class[] { String[].class }; - Method m = javac.getMethod("compile", p); - Object[] a = new Object[] { args }; - Object r = m.invoke(javac.newInstance(), a); + Method m = javac.getMethod("compile", String[].class); + Object r = m.invoke(javac.newInstance(), (Object)args); result = (Integer) r; //result = com.sun.tools.javac.Main.compile(args); } diff --git a/src/org/antlr/works/debugger/DebuggerTab.java b/src/org/antlr/works/debugger/DebuggerTab.java index 973f54e9..5aa7df0a 100644 --- a/src/org/antlr/works/debugger/DebuggerTab.java +++ b/src/org/antlr/works/debugger/DebuggerTab.java @@ -563,7 +563,7 @@ public void addEvent(DBEvent event, DBPlayerContextInfo info) { eventsPanel.addEvent(event, info); } - public void playEvents(List events, int lastEventPosition, boolean reset) { + public void playEvents(List events, int lastEventPosition, boolean reset) { player.playEvents(events, lastEventPosition, reset); breaksOnEvent(); } diff --git a/src/org/antlr/works/debugger/panels/DBControlPanel.java b/src/org/antlr/works/debugger/panels/DBControlPanel.java index f15696fd..0dbea848 100644 --- a/src/org/antlr/works/debugger/panels/DBControlPanel.java +++ b/src/org/antlr/works/debugger/panels/DBControlPanel.java @@ -7,7 +7,6 @@ import org.antlr.works.prefs.AWPrefs; import org.antlr.works.stats.StatisticsAW; import org.antlr.works.utils.IconManager; -import org.antlr.works.utils.NumberSet; import org.antlr.works.utils.Toolbar; import org.antlr.xjlib.appkit.swing.XJRollOverButton; @@ -15,6 +14,7 @@ import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.util.HashSet; import java.util.Set; /* @@ -229,8 +229,8 @@ public JComponent createInfoLabelPanel() { return infoLabel; } - public Set getBreakEvent() { - NumberSet set = new NumberSet(); + public Set getBreakEvent() { + Set set = new HashSet(); if(breakAllButton.isSelected()) set.add(DBEvent.ALL); diff --git a/src/org/antlr/works/debugger/panels/DBEventsPanel.java b/src/org/antlr/works/debugger/panels/DBEventsPanel.java index 7b49d8e5..906a4598 100644 --- a/src/org/antlr/works/debugger/panels/DBEventsPanel.java +++ b/src/org/antlr/works/debugger/panels/DBEventsPanel.java @@ -155,7 +155,7 @@ public String getColumnName(int column) { return super.getColumnName(column); } - public Class getColumnClass(int columnIndex) { + public Class getColumnClass(int columnIndex) { switch(columnIndex) { case INFO_COLUMN_COUNT: return String.class; case INFO_COLUMN_EVENT: return String.class; diff --git a/src/org/antlr/works/debugger/panels/DBStackPanel.java b/src/org/antlr/works/debugger/panels/DBStackPanel.java index 374bbed3..a1a3babf 100644 --- a/src/org/antlr/works/debugger/panels/DBStackPanel.java +++ b/src/org/antlr/works/debugger/panels/DBStackPanel.java @@ -10,7 +10,8 @@ import javax.swing.table.AbstractTableModel; import java.awt.*; import java.util.ArrayList; -import java.util.Stack; +import java.util.List; + /* [The "BSD licence"] @@ -49,7 +50,7 @@ public class DBStackPanel extends DetachablePanel { private XJTableView infoTableView; private DBStackPanel.RuleTableDataModel ruleTableDataModel; - private Stack rules = new Stack(); + private List rules = new ArrayList(); public DBStackPanel(DebuggerTab debuggerTab) { super("Stack", debuggerTab); @@ -89,20 +90,20 @@ public void run() { } public void pushRule(DBEventEnterRule rule) { - rules.push(rule); + rules.add(rule); ruleTableDataModel.add(rule.name); } public void popRule() { - ruleTableDataModel.remove(rules.peek().name); - rules.pop(); + ruleTableDataModel.remove(rules.get(rules.size() - 1).name); + rules.remove(rules.size() - 1); } public DBEventEnterRule peekRule() { if(rules.isEmpty()) { return null; } else { - return rules.peek(); + return rules.get(rules.size() - 1); } } diff --git a/src/org/antlr/works/debugger/tivo/DBPlayer.java b/src/org/antlr/works/debugger/tivo/DBPlayer.java index 0b3e3cd5..f07804b6 100644 --- a/src/org/antlr/works/debugger/tivo/DBPlayer.java +++ b/src/org/antlr/works/debugger/tivo/DBPlayer.java @@ -37,8 +37,8 @@ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT import org.antlr.works.debugger.input.DBInputProcessor; import org.antlr.works.debugger.input.DBInputTextTokenInfo; +import java.util.ArrayList; import java.util.List; -import java.util.Stack; public class DBPlayer { @@ -46,7 +46,7 @@ public class DBPlayer { protected DBInputProcessor processor; protected DBPlayerContextInfo contextInfo; - protected Stack markStack; + protected List markStack; protected int resyncing = 0; protected int eventPlayedCount = 0; @@ -54,7 +54,7 @@ public class DBPlayer { public DBPlayer(DebuggerTab debuggerTab) { this.debuggerTab = debuggerTab; contextInfo = new DBPlayerContextInfo(); - markStack = new Stack(); + markStack = new ArrayList(); } public void close() { @@ -88,13 +88,13 @@ the events are reset (when the debugger starts). eventPlayedCount = 0; } - public void playEvents(List events, int lastEventPosition, boolean reset) { + public void playEvents(List events, int lastEventPosition, boolean reset) { if(reset) resetPlayEvents(false); int lastIndex = lastEventPosition - 1; for(int i=eventPlayedCount; i< lastEventPosition; i++) { - DBEvent event = (DBEvent)events.get(i); + DBEvent event = events.get(i); try { playEvent(event); @@ -317,13 +317,13 @@ public void playLocation() { public void playMark(DBEventMark event) { contextInfo.mark(event.id); - markStack.push(processor.getCurrentTokenIndex()); + markStack.add(processor.getCurrentTokenIndex()); } public void playRewind(DBEventRewind event) { - processor.rewind(markStack.peek()); + processor.rewind(markStack.get(markStack.size() - 1)); if(!event.rewindToLastMark()) { - markStack.pop(); + markStack.remove(markStack.size() - 1); contextInfo.rewind(); } } diff --git a/src/org/antlr/works/debugger/tivo/DBPlayerContextInfo.java b/src/org/antlr/works/debugger/tivo/DBPlayerContextInfo.java index 8fa3efa4..2876fe8e 100644 --- a/src/org/antlr/works/debugger/tivo/DBPlayerContextInfo.java +++ b/src/org/antlr/works/debugger/tivo/DBPlayerContextInfo.java @@ -1,6 +1,8 @@ package org.antlr.works.debugger.tivo; -import java.util.Stack; +import java.util.ArrayList; +import java.util.List; + /* [The "BSD licence"] @@ -34,17 +36,17 @@ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT public class DBPlayerContextInfo { - public Stack subrule = new Stack(); - public Stack decision = new Stack(); - public Stack mark = new Stack(); - public Stack backtrack = new Stack(); + public List subrule = new ArrayList(); + public List decision = new ArrayList(); + public List mark = new ArrayList(); + public List backtrack = new ArrayList(); public void enterSubrule(int i) { - subrule.push(i); + subrule.add(i); } public void exitSubrule() { - subrule.pop(); + subrule.remove(subrule.size() - 1); } public int getSubrule() { @@ -52,11 +54,11 @@ public int getSubrule() { } public void enterDecision(int i) { - decision.push(i); + decision.add(i); } public void exitDecision() { - decision.pop(); + decision.remove(decision.size() - 1); } public int getDecision() { @@ -64,11 +66,11 @@ public int getDecision() { } public void mark(int i) { - mark.push(i); + mark.add(i); } public void rewind() { - mark.pop(); + mark.remove(mark.size() - 1); } public int getMark() { @@ -76,11 +78,11 @@ public int getMark() { } public void beginBacktrack(int level) { - backtrack.push(level); + backtrack.add(level); } public void endBacktrack() { - backtrack.pop(); + backtrack.remove(backtrack.size() - 1); } public int getBacktrack() { @@ -91,11 +93,11 @@ public boolean isBacktracking() { return !backtrack.isEmpty(); } - public int getPeekValue(Stack s) { + public int getPeekValue(List s) { if(s.isEmpty()) return -1; else - return s.peek(); + return s.get(s.size() - 1); } public void clear() { diff --git a/src/org/antlr/works/debugger/tivo/DBRecorder.java b/src/org/antlr/works/debugger/tivo/DBRecorder.java index ee18ac68..dd0a1384 100644 --- a/src/org/antlr/works/debugger/tivo/DBRecorder.java +++ b/src/org/antlr/works/debugger/tivo/DBRecorder.java @@ -38,7 +38,6 @@ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT import org.antlr.works.debugger.events.*; import org.antlr.works.prefs.AWPrefs; import org.antlr.works.utils.Console; -import org.antlr.works.utils.NumberSet; import org.antlr.xjlib.appkit.utils.XJAlert; import org.antlr.xjlib.appkit.utils.XJDialogProgress; import org.antlr.xjlib.appkit.utils.XJDialogProgressDelegate; @@ -92,7 +91,7 @@ protected void dispatch(String line) { protected List events; protected int position; - protected NumberSet breakEvents = new NumberSet(); + protected Set breakEvents = new HashSet(); protected int stoppedOnEvent = DBEvent.NO_EVENT; protected boolean ignoreBreakpoints = false; protected StepOver stepOver = new StepOver(); @@ -120,7 +119,7 @@ protected void dispatch(String line) { /** * Current grammar the recorder is in */ - protected Stack grammarNamesStack = new Stack(); + protected List grammarNamesStack = new ArrayList(); public DBRecorder(DebuggerTab debuggerTab) { this.debuggerTab = debuggerTab; @@ -199,11 +198,12 @@ public void setPositionToEnd() { position = events.size()-1; } - public void setBreakEvents(Set events) { - this.breakEvents.replaceAll(events); + public void setBreakEvents(Set events) { + this.breakEvents.clear(); + this.breakEvents.addAll(events); } - public Set getBreakEvents() { + public Set getBreakEvents() { return breakEvents; } @@ -303,7 +303,7 @@ public boolean isAtEnd() { return e.getEventType() == DBEvent.TERMINATE; } - public void stepBackward(Set breakEvents) { + public void stepBackward(Set breakEvents) { setIgnoreBreakpoints(false); stepContinue(breakEvents); stepMove(-1); @@ -312,7 +312,7 @@ public void stepBackward(Set breakEvents) { playEvents(true); } - public synchronized void stepForward(Set breakEvents) { + public synchronized void stepForward(Set breakEvents) { setIgnoreBreakpoints(false); stepContinue(breakEvents); if(stepMove(1)) { @@ -334,7 +334,7 @@ public void stepOver() { fastForward(); } - public void stepContinue(Set breakEvents) { + public void stepContinue(Set breakEvents) { setBreakEvents(breakEvents); queryGrammarBreakpoints(); setStatus(STATUS_RUNNING); @@ -374,7 +374,7 @@ public void goToStart() { public void goToEnd() { setIgnoreBreakpoints(true); - stepContinue(new NumberSet(DBEvent.TERMINATE)); + stepContinue(Collections.singleton(DBEvent.TERMINATE)); if(stepMove(1)) playEvents(false); else @@ -382,7 +382,7 @@ public void goToEnd() { } public void fastForward() { - stepForward(new NumberSet(DBEvent.TERMINATE)); + stepForward(Collections.singleton(DBEvent.TERMINATE)); } public void connect(String address, int port) { @@ -552,15 +552,15 @@ public void recordIndexes(DBEvent event) { public void handleGrammarName(DBEvent event) { if(event instanceof DBEventEnterRule) { - grammarNamesStack.push(event.getGrammarName()); + grammarNamesStack.add(event.getGrammarName()); } if(event instanceof DBEventExitRule) { - grammarNamesStack.pop(); + grammarNamesStack.remove(grammarNamesStack.size() - 1); } if(grammarNamesStack.isEmpty()) { event.setGrammarName(null); } else { - event.setGrammarName(grammarNamesStack.peek()); + event.setGrammarName(grammarNamesStack.get(grammarNamesStack.size() - 1)); } } diff --git a/src/org/antlr/works/debugger/tree/DBASTModel.java b/src/org/antlr/works/debugger/tree/DBASTModel.java index c50ab5f4..70e8e1a6 100644 --- a/src/org/antlr/works/debugger/tree/DBASTModel.java +++ b/src/org/antlr/works/debugger/tree/DBASTModel.java @@ -39,7 +39,7 @@ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT public class DBASTModel { /** Stack of rule. Each rule contains a stack of roots */ - public Stack rules = new Stack(); + public List rules = new ArrayList(); /** Map of nodes */ public Map nodesMap = new HashMap(); @@ -92,23 +92,23 @@ public int getRootCount() { /* Methods used by the debugger */ public void pushRule(String name) { - rules.push(new Rule(name, new Stack())); + rules.add(new Rule(name, new ArrayList())); } public void popRule() { /* Do not pop the start rule: we want to be able to see the AST tree at the end of event stream so we keep the start rule on the stack. */ if(rules.size() > 1) - rules.pop(); + rules.remove(rules.size() - 1); } public void pushRoot(ASTNode node) { - getRoots().push(node); + getRoots().add(node); } /** Replace a root node by another one */ public void replaceRoot(ASTNode oldRoot, ASTNode newRoot) { - Stack roots = getRoots(); + List roots = getRoots(); int index = roots.indexOf(oldRoot); roots.remove(index); roots.add(index, newRoot); @@ -189,19 +189,19 @@ protected ASTNode getTreeNode(int id) { return nodesMap.get(id); } - protected Stack getRoots() { + protected List getRoots() { if(rules.isEmpty()) return null; else - return (rules.peek()).roots; + return (rules.get(rules.size() - 1)).roots; } public class Rule { public String name; - public Stack roots; + public List roots; - public Rule(String name, Stack roots) { + public Rule(String name, List roots) { this.name = name; this.roots = roots; } @@ -210,7 +210,7 @@ public ASTNode getRootAtIndex(int index) { return roots.get(index); } - public Stack getRoots() { + public List getRoots() { return roots; } } @@ -222,13 +222,15 @@ public class ASTNode extends DBTreeNode { public ASTNode parentNode = null; + @SuppressWarnings("UseOfObsoleteCollectionType") public ASTNode(int id) { this.id = id; - /** Children is defined in DefaultMutableTreeNode */ - children = new Vector(); + /* Children is defined in DefaultMutableTreeNode */ + children = new Vector(); } /** Add a child */ + @SuppressWarnings("unchecked") public void addChild(ASTNode node) { if(node.nil) { /** If the child node is a nil node, add its children only */ @@ -261,6 +263,7 @@ public void becomeParent(ASTNode node) { } /** Replace a child with another one */ + @SuppressWarnings("unchecked") public void replaceChild(ASTNode oldNode, ASTNode newNode) { int index = children.indexOf(oldNode); children.remove(index); diff --git a/src/org/antlr/works/debugger/tree/DBASTPanel.java b/src/org/antlr/works/debugger/tree/DBASTPanel.java index 57cddfa9..eab64489 100644 --- a/src/org/antlr/works/debugger/tree/DBASTPanel.java +++ b/src/org/antlr/works/debugger/tree/DBASTPanel.java @@ -15,7 +15,8 @@ import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeNode; import java.awt.*; -import java.util.Stack; +import java.util.List; + /* [The "BSD licence"] @@ -169,7 +170,7 @@ public void selectToken(Token token) { if(rule == null) return; - Stack roots = rule.getRoots(); + List roots = rule.getRoots(); for (int r = 0; r < roots.size(); r++) { DBASTModel.ASTNode node = roots.get(r); DBTreeNode candidate = node.findNodeWithToken(token); diff --git a/src/org/antlr/works/debugger/tree/DBParseTreeModel.java b/src/org/antlr/works/debugger/tree/DBParseTreeModel.java index ff4c89d7..963834d5 100644 --- a/src/org/antlr/works/debugger/tree/DBParseTreeModel.java +++ b/src/org/antlr/works/debugger/tree/DBParseTreeModel.java @@ -15,7 +15,6 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; -import java.util.Stack; /* [The "BSD licence"] @@ -49,8 +48,8 @@ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT public class DBParseTreeModel extends AWTreeModel implements XJNotificationObserver { - public Stack rules = new Stack(); - public Stack backtrackStack = new Stack(); + public List rules = new ArrayList(); + public List backtrackStack = new ArrayList(); public Color lookaheadTokenColor; public TreeNode lastNode; @@ -85,7 +84,7 @@ public void fireDataChanged() { public void initRules() { rules.clear(); - rules.push(new ParseTreeNode("root", null)); + rules.add(new ParseTreeNode("root", null)); } public void initColors() { @@ -117,10 +116,10 @@ public void setLocation(DBEventLocation location) { } public void pushRule(String name) { - ParseTreeNode parentRuleNode = rules.peek(); + ParseTreeNode parentRuleNode = rules.get(rules.size() - 1); ParseTreeNode ruleNode = new ParseTreeNode(name, location); - rules.push(ruleNode); + rules.add(ruleNode); addNode(parentRuleNode, ruleNode); addNodeToCurrentBacktrack(ruleNode); @@ -129,22 +128,22 @@ public void pushRule(String name) { } public void popRule() { - rules.pop(); + rules.remove(rules.size() - 1); } public TreeNode getRootRule() { - return rules.firstElement(); + return rules.get(0); } public TreeNode peekRule() { if(rules.isEmpty()) return null; else - return rules.peek(); + return rules.get(rules.size() - 1); } public void addToken(Token token) { - ParseTreeNode ruleNode = rules.peek(); + ParseTreeNode ruleNode = rules.get(rules.size() - 1); ParseTreeNode elementNode = new ParseTreeNode(token, location); addNode(ruleNode, elementNode); addNodeToCurrentBacktrack(elementNode); @@ -152,7 +151,7 @@ public void addToken(Token token) { } public void addException(Exception e) { - ParseTreeNode ruleNode = rules.peek(); + ParseTreeNode ruleNode = rules.get(rules.size() - 1); ParseTreeNode errorNode = new ParseTreeNode(e, location); addNode(ruleNode, errorNode); addNodeToCurrentBacktrack(errorNode); @@ -163,16 +162,16 @@ public void addNodeToCurrentBacktrack(ParseTreeNode node) { if(backtrackStack.isEmpty()) return; - Backtrack b = backtrackStack.peek(); + Backtrack b = backtrackStack.get(backtrackStack.size() - 1); b.addNode(node); } public void beginBacktrack(int level) { - backtrackStack.push(new Backtrack(level, lookaheadTokenColor)); + backtrackStack.add(new Backtrack(level, lookaheadTokenColor)); } public void endBacktrack(int level, boolean success) { - Backtrack b = backtrackStack.pop(); + Backtrack b = backtrackStack.remove(backtrackStack.size() - 1); b.end(success); setLastNode(b.getLastNode()); } diff --git a/src/org/antlr/works/debugger/tree/DBTreeNode.java b/src/org/antlr/works/debugger/tree/DBTreeNode.java index 13da5f37..3e4b73de 100644 --- a/src/org/antlr/works/debugger/tree/DBTreeNode.java +++ b/src/org/antlr/works/debugger/tree/DBTreeNode.java @@ -102,7 +102,7 @@ public DBTreeNode findNodeWithToken(Token t, DBTreeNode lastNodeSoFar) { } } - for(Enumeration childrenEnumerator = children(); childrenEnumerator.hasMoreElements(); ) { + for(Enumeration childrenEnumerator = children(); childrenEnumerator.hasMoreElements(); ) { DBTreeNode node = (DBTreeNode) childrenEnumerator.nextElement(); DBTreeNode candidate = node.findNodeWithToken(t, lastNodeSoFar); if(candidate != null) diff --git a/src/org/antlr/works/dialog/AWPrefsDialog.java b/src/org/antlr/works/dialog/AWPrefsDialog.java index 84ff7cdf..4ae5221d 100644 --- a/src/org/antlr/works/dialog/AWPrefsDialog.java +++ b/src/org/antlr/works/dialog/AWPrefsDialog.java @@ -588,11 +588,11 @@ private void initComponents() { FormFactory.LABEL_COMPONENT_GAP_COLSPEC, new ColumnSpec(ColumnSpec.RIGHT, Sizes.DEFAULT, FormSpec.NO_GROW), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, - new ColumnSpec("max(min;20dlu)"), + ColumnSpec.decode("max(min;20dlu)"), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, new ColumnSpec(ColumnSpec.FILL, Sizes.DEFAULT, FormSpec.DEFAULT_GROW), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, - new ColumnSpec("max(min;40dlu)"), + ColumnSpec.decode("max(min;40dlu)"), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, new ColumnSpec(Sizes.dluX(10)) }, @@ -685,7 +685,7 @@ private void initComponents() { FormFactory.LABEL_COMPONENT_GAP_COLSPEC, new ColumnSpec(Sizes.dluX(20)), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, - new ColumnSpec("max(default;45dlu)"), + ColumnSpec.decode("max(default;45dlu)"), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, new ColumnSpec(Sizes.dluX(20)), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, @@ -1131,7 +1131,7 @@ private void initComponents() { FormFactory.LABEL_COMPONENT_GAP_COLSPEC, new ColumnSpec(ColumnSpec.RIGHT, Sizes.DEFAULT, FormSpec.NO_GROW), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, - new ColumnSpec("max(default;20dlu)"), + ColumnSpec.decode("max(default;20dlu)"), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC, FormFactory.LABEL_COMPONENT_GAP_COLSPEC, diff --git a/src/org/antlr/works/dialog/DialogAbout.java b/src/org/antlr/works/dialog/DialogAbout.java index e7bc13fb..747dd587 100644 --- a/src/org/antlr/works/dialog/DialogAbout.java +++ b/src/org/antlr/works/dialog/DialogAbout.java @@ -167,13 +167,13 @@ private void initComponents() { FormFactory.LINE_GAP_ROWSPEC, new RowSpec(RowSpec.BOTTOM, Sizes.DEFAULT, FormSpec.NO_GROW), FormFactory.LINE_GAP_ROWSPEC, - new RowSpec("top:max(default;15dlu)"), + RowSpec.decode("top:max(default;15dlu)"), FormFactory.LINE_GAP_ROWSPEC, - new RowSpec("bottom:max(default;10dlu)"), + RowSpec.decode("bottom:max(default;10dlu)"), FormFactory.LINE_GAP_ROWSPEC, - new RowSpec("top:max(default;10dlu)"), + RowSpec.decode("top:max(default;10dlu)"), FormFactory.LINE_GAP_ROWSPEC, - new RowSpec("fill:max(default;60dlu):grow"), + RowSpec.decode("fill:max(default;60dlu):grow"), FormFactory.LINE_GAP_ROWSPEC, new RowSpec(Sizes.dluY(10)) })); diff --git a/src/org/antlr/works/dialog/DialogGenerate.java b/src/org/antlr/works/dialog/DialogGenerate.java index e222b723..d8899201 100644 --- a/src/org/antlr/works/dialog/DialogGenerate.java +++ b/src/org/antlr/works/dialog/DialogGenerate.java @@ -128,7 +128,7 @@ private void initComponents() { new ColumnSpec[] { FormFactory.DEFAULT_COLSPEC, FormFactory.LABEL_COMPONENT_GAP_COLSPEC, - new ColumnSpec("max(min;200dlu):grow"), + ColumnSpec.decode("max(min;200dlu):grow"), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC }, diff --git a/src/org/antlr/works/dialog/DialogPersonalInfo.java b/src/org/antlr/works/dialog/DialogPersonalInfo.java index 622f3bb0..1025d08b 100644 --- a/src/org/antlr/works/dialog/DialogPersonalInfo.java +++ b/src/org/antlr/works/dialog/DialogPersonalInfo.java @@ -163,9 +163,9 @@ private void initComponents() { FormFactory.LABEL_COMPONENT_GAP_COLSPEC, new ColumnSpec(Sizes.dluX(50)), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, - new ColumnSpec("max(min;100dlu):grow"), + ColumnSpec.decode("max(min;100dlu):grow"), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, - new ColumnSpec("max(default;30dlu)"), + ColumnSpec.decode("max(default;30dlu)"), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC }, diff --git a/src/org/antlr/works/dialog/DialogReports.java b/src/org/antlr/works/dialog/DialogReports.java index 40cda0fe..4086793c 100644 --- a/src/org/antlr/works/dialog/DialogReports.java +++ b/src/org/antlr/works/dialog/DialogReports.java @@ -330,11 +330,11 @@ private void initComponents() { new ColumnSpec[] { FormFactory.DEFAULT_COLSPEC, FormFactory.LABEL_COMPONENT_GAP_COLSPEC, - new ColumnSpec("max(min;30dlu)"), + ColumnSpec.decode("max(min;30dlu)"), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, FormFactory.RELATED_GAP_COLSPEC, FormFactory.LABEL_COMPONENT_GAP_COLSPEC, - new ColumnSpec("max(min;30dlu):grow"), + ColumnSpec.decode("max(min;30dlu):grow"), FormFactory.LABEL_COMPONENT_GAP_COLSPEC, new ColumnSpec(ColumnSpec.FILL, Sizes.DEFAULT, FormSpec.DEFAULT_GROW) }, diff --git a/src/org/antlr/works/editor/EditorFoldingManager.java b/src/org/antlr/works/editor/EditorFoldingManager.java index a8d9d0fb..88db809f 100644 --- a/src/org/antlr/works/editor/EditorFoldingManager.java +++ b/src/org/antlr/works/editor/EditorFoldingManager.java @@ -105,12 +105,11 @@ public void provideFoldingEntities() { } } - public ATEFoldingEntity getEntityForIdentifier(List entities, String identifier) { + public ATEFoldingEntity getEntityForIdentifier(List entities, String identifier) { if(entities == null || entities.isEmpty()) return null; // optimize using a map ? - for (Object entity1 : entities) { - ATEFoldingEntity entity = (ATEFoldingEntity) entity1; + for (ATEFoldingEntity entity : entities) { if (entity.foldingEntityID().equals(identifier)) return entity; } diff --git a/src/org/antlr/works/editor/EditorInspector.java b/src/org/antlr/works/editor/EditorInspector.java index dcf2bb13..38699aa3 100644 --- a/src/org/antlr/works/editor/EditorInspector.java +++ b/src/org/antlr/works/editor/EditorInspector.java @@ -1,5 +1,6 @@ package org.antlr.works.editor; +import org.antlr.tool.Rule; import org.antlr.works.ate.syntax.generic.ATESyntaxLexer; import org.antlr.works.ate.syntax.misc.ATEToken; import org.antlr.works.editor.idea.IdeaAction; @@ -11,8 +12,8 @@ import java.awt.*; import java.util.ArrayList; +import java.util.Collection; import java.util.List; -import java.util.Set; /* [The "BSD licence"] @@ -210,7 +211,7 @@ protected void discoverLeftRecursiveRulesSet(List items) { return; for (ElementRule rule : rules) { - Set rulesSet = rule.getLeftRecursiveRulesSet(); + Collection rulesSet = rule.getLeftRecursiveRulesSet(); if (rulesSet == null || rulesSet.size() < 2) continue; diff --git a/src/org/antlr/works/editor/EditorPersistence.java b/src/org/antlr/works/editor/EditorPersistence.java index 584fa476..fe5b5fce 100644 --- a/src/org/antlr/works/editor/EditorPersistence.java +++ b/src/org/antlr/works/editor/EditorPersistence.java @@ -70,7 +70,7 @@ public void restore() { } } - public void store(List objects, String key) { + public void store(List objects, String key) { Map m = persistence.get(key); if(m == null) { m = new HashMap(); @@ -81,13 +81,12 @@ public void store(List objects, String key) { if(objects == null) return; - for (Object object : objects) { - EditorPersistentObject o = (EditorPersistentObject) object; + for (EditorPersistentObject o : objects) { m.put(o.getPersistentID(), o); } } - public void restore(List objects, String key) { + public void restore(List objects, String key) { Map m = persistence.get(key); if(m == null) return; @@ -95,8 +94,7 @@ public void restore(List objects, String key) { if(objects == null) return; - for (Object object : objects) { - EditorPersistentObject o = (EditorPersistentObject) object; + for (EditorPersistentObject o : objects) { EditorPersistentObject oldObject = m.get(o.getPersistentID()); if (oldObject != null) o.persistentAssign(oldObject); diff --git a/src/org/antlr/works/editor/EditorRules.java b/src/org/antlr/works/editor/EditorRules.java index 74b6f25c..4b41c0af 100644 --- a/src/org/antlr/works/editor/EditorRules.java +++ b/src/org/antlr/works/editor/EditorRules.java @@ -467,7 +467,7 @@ public void selectRuleInTree(ElementRule rule) { if(rule == null) return; - Enumeration enumeration = rulesTreeRootNode.depthFirstEnumeration(); + Enumeration enumeration = rulesTreeRootNode.depthFirstEnumeration(); while(enumeration.hasMoreElements()) { DefaultMutableTreeNode node = (DefaultMutableTreeNode)enumeration.nextElement(); RuleTreeUserObject n = (RuleTreeUserObject)node.getUserObject(); @@ -499,12 +499,12 @@ public void rebuildTree() { if(groups.isEmpty()) { buildTree(rulesTreeRootNode, rules, 0, rules.size()-1); } else { - Stack parentStack = new Stack(); + List parentStack = new ArrayList(); parentStack.add(rulesTreeRootNode); int ruleIndex = 0; for (ElementGroup group : groups) { - DefaultMutableTreeNode parentNode = parentStack.peek(); + DefaultMutableTreeNode parentNode = parentStack.get(parentStack.size() - 1); if (group.ruleIndex >= 0) { buildTree(parentNode, rules, ruleIndex, group.ruleIndex); ruleIndex = group.ruleIndex + 1; @@ -513,15 +513,15 @@ public void rebuildTree() { if (group.openGroup) { DefaultMutableTreeNode node = new DefaultMutableTreeNode(new RuleTreeUserObject(group)); parentNode.add(node); - parentStack.push(node); + parentStack.add(node); } else { if (parentStack.size() > 1) - parentStack.pop(); + parentStack.remove(parentStack.size() - 1); } } if(ruleIndex < rules.size()) { - DefaultMutableTreeNode parentNode = parentStack.peek(); + DefaultMutableTreeNode parentNode = parentStack.get(parentStack.size() - 1); buildTree(parentNode, rules, ruleIndex, rules.size()-1); } } @@ -556,7 +556,7 @@ public void restoreSelectedTreeItem() { public void saveExpandedNodes() { rulesTreeExpandedNodes.clear(); - Enumeration e = rulesTreeRootNode.depthFirstEnumeration(); + Enumeration e = rulesTreeRootNode.depthFirstEnumeration(); while(e.hasMoreElements()) { DefaultMutableTreeNode node = (DefaultMutableTreeNode)e.nextElement(); if(!node.isLeaf() && !node.isRoot() && rulesTree.isExpanded(new TreePath(node.getPath()))) { @@ -575,7 +575,7 @@ public void restoreExpandedNodes() { } public DefaultMutableTreeNode findNodeWithGroupName(String groupName) { - Enumeration e = rulesTreeRootNode.depthFirstEnumeration(); + Enumeration e = rulesTreeRootNode.depthFirstEnumeration(); while(e.hasMoreElements()) { DefaultMutableTreeNode node = (DefaultMutableTreeNode)e.nextElement(); RuleTreeUserObject n = (RuleTreeUserObject)node.getUserObject(); @@ -586,7 +586,7 @@ public DefaultMutableTreeNode findNodeWithGroupName(String groupName) { } public DefaultMutableTreeNode findNodeWithRuleName(String ruleName) { - Enumeration e = rulesTreeRootNode.depthFirstEnumeration(); + Enumeration e = rulesTreeRootNode.depthFirstEnumeration(); while(e.hasMoreElements()) { DefaultMutableTreeNode node = (DefaultMutableTreeNode)e.nextElement(); RuleTreeUserObject n = (RuleTreeUserObject)node.getUserObject(); diff --git a/src/org/antlr/works/editor/completion/AutoCompletionMenu.java b/src/org/antlr/works/editor/completion/AutoCompletionMenu.java index f13dfa92..5d41d316 100644 --- a/src/org/antlr/works/editor/completion/AutoCompletionMenu.java +++ b/src/org/antlr/works/editor/completion/AutoCompletionMenu.java @@ -57,7 +57,7 @@ public class AutoCompletionMenu extends OverlayObject { /** Used to store most recently used during autocompletion * the newest should be stored at the front of the list. */ - protected static List recentlyUsedWords = new LinkedList(); + protected static LinkedList recentlyUsedWords = new LinkedList(); protected int maxWordLength; protected int insertionStartIndex; @@ -228,7 +228,7 @@ public void autoComplete() { String partialWord = words.get(list.getSelectedIndex()); if (isVStyle()) { recentlyUsedWords.remove(partialWord); //put it at the beginning of the list if it exists - ((LinkedList)recentlyUsedWords).addFirst(partialWord); + recentlyUsedWords.addFirst(partialWord); } completePartialWord(partialWord); } diff --git a/src/org/antlr/works/grammar/RefactorEngine.java b/src/org/antlr/works/grammar/RefactorEngine.java index 06427de1..b61cfa2e 100644 --- a/src/org/antlr/works/grammar/RefactorEngine.java +++ b/src/org/antlr/works/grammar/RefactorEngine.java @@ -74,7 +74,7 @@ public boolean renameToken(ATEToken t, String name) { public static boolean ignoreScopeForDoubleQuoteLiteral(ATEScope scope) { if(scope == null) return false; - Class c = scope.getClass(); + Class c = scope.getClass(); return c.equals(ElementAction.class) || c.equals(ElementBlock.class) || c.equals(ElementRewriteBlock.class) || c.equals(ElementRewriteFunction.class) || c.equals(ElementArgumentBlock.class); } diff --git a/src/org/antlr/works/grammar/antlr/ANTLRGrammarEngineImpl.java b/src/org/antlr/works/grammar/antlr/ANTLRGrammarEngineImpl.java index e34c7455..e01a8f50 100644 --- a/src/org/antlr/works/grammar/antlr/ANTLRGrammarEngineImpl.java +++ b/src/org/antlr/works/grammar/antlr/ANTLRGrammarEngineImpl.java @@ -33,6 +33,7 @@ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT package org.antlr.works.grammar.antlr; import antlr.TokenStreamException; +import org.antlr.analysis.Label; import org.antlr.analysis.NFAState; import org.antlr.runtime.RecognitionException; import org.antlr.tool.*; @@ -46,6 +47,7 @@ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Set; @@ -229,23 +231,20 @@ private void createLexerGrammar() throws TokenStreamException, RecognitionExcept lexerGrammar = createNewGrammar(); } - private void printLeftRecursionToConsole(List rules) { + private void printLeftRecursionToConsole(List> rules) { StringBuilder info = new StringBuilder(); info.append("Aborting because the following rules are mutually left-recursive:"); - for (Object rule : rules) { - Set rulesSet = (Set) rule; + for (Collection rulesSet : rules) { info.append("\n "); info.append(rulesSet); } engine.reportError(info.toString()); } - private void markLeftRecursiveRules(List rules) { + private void markLeftRecursiveRules(List> rules) { // 'rules' is a list of set of rules given by ANTLR - for (Object ruleSet : rules) { - final Set rulesSet = (Set) ruleSet; - for (Object rule : rulesSet) { - final Rule aRule = (Rule) rule; + for (Collection rulesSet : rules) { + for (Rule aRule : rulesSet) { final ElementRule r = engine.getRuleWithName(aRule.name); if (r == null) continue; @@ -276,7 +275,7 @@ public GrammarResult analyze() throws Exception { return analyzeCompleted(el); } - List rules = g.checkAllRulesForLeftRecursion(); + List> rules = g.checkAllRulesForLeftRecursion(); if(!rules.isEmpty()) { printLeftRecursionToConsole(rules); markLeftRecursiveRules(rules); @@ -385,7 +384,7 @@ private GrammarError buildNonDeterministicError(GrammarNonDeterminismMessage mes GrammarError error = new GrammarError(); error.setLine(message.probe.dfa.getDecisionASTNode().getLine()-1); - List labels = message.probe.getSampleNonDeterministicInputSequence(message.problemState); + List