Specify locale for all format operations (fixes #158)

This commit is contained in:
Sam Harwell 2013-03-06 11:26:38 -06:00
parent 2ffb12028a
commit e0e6e0a94c
6 changed files with 29 additions and 21 deletions

View File

@ -34,6 +34,8 @@ import org.antlr.v4.runtime.atn.PredicateTransition;
import org.antlr.v4.runtime.misc.NotNull; import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.misc.Nullable; import org.antlr.v4.runtime.misc.Nullable;
import java.util.Locale;
/** A semantic predicate failed during validation. Validation of predicates /** A semantic predicate failed during validation. Validation of predicates
* occurs when normally parsing the alternative just like matching a token. * occurs when normally parsing the alternative just like matching a token.
* Disambiguating predicate evaluation occurs when we test a predicate during * Disambiguating predicate evaluation occurs when we test a predicate during
@ -84,6 +86,6 @@ public class FailedPredicateException extends RecognitionException {
return message; return message;
} }
return String.format("failed predicate: {%s}?", predicate); return String.format(Locale.getDefault(), "failed predicate: {%s}?", predicate);
} }
} }

View File

@ -36,6 +36,8 @@ import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.misc.Nullable; import org.antlr.v4.runtime.misc.Nullable;
import org.antlr.v4.runtime.misc.Utils; import org.antlr.v4.runtime.misc.Utils;
import java.util.Locale;
public class LexerNoViableAltException extends RecognitionException { public class LexerNoViableAltException extends RecognitionException {
/** Matching attempted at what input index? */ /** Matching attempted at what input index? */
private final int startIndex; private final int startIndex;
@ -75,6 +77,6 @@ public class LexerNoViableAltException extends RecognitionException {
symbol = Utils.escapeWhitespace(symbol, false); symbol = Utils.escapeWhitespace(symbol, false);
} }
return String.format("%s('%s')", LexerNoViableAltException.class.getSimpleName(), symbol); return String.format(Locale.getDefault(), "%s('%s')", LexerNoViableAltException.class.getSimpleName(), symbol);
} }
} }

View File

@ -39,6 +39,7 @@ import java.io.InvalidClassException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.IdentityHashMap; import java.util.IdentityHashMap;
import java.util.List; import java.util.List;
import java.util.Locale;
public abstract class ATNSimulator { public abstract class ATNSimulator {
public static final int SERIALIZED_VERSION; public static final int SERIALIZED_VERSION;
@ -110,7 +111,7 @@ public abstract class ATNSimulator {
int p = 0; int p = 0;
int version = toInt(data[p++]); int version = toInt(data[p++]);
if (version != SERIALIZED_VERSION) { if (version != SERIALIZED_VERSION) {
String reason = String.format("Could not deserialize ATN with version %d (expected %d).", version, SERIALIZED_VERSION); String reason = String.format(Locale.getDefault(), "Could not deserialize ATN with version %d (expected %d).", version, SERIALIZED_VERSION);
throw new UnsupportedOperationException(new InvalidClassException(ATN.class.getName(), reason)); throw new UnsupportedOperationException(new InvalidClassException(ATN.class.getName(), reason));
} }
@ -420,7 +421,7 @@ public abstract class ATNSimulator {
case ATNState.PLUS_LOOP_BACK : s = new PlusLoopbackState(); break; case ATNState.PLUS_LOOP_BACK : s = new PlusLoopbackState(); break;
case ATNState.LOOP_END : s = new LoopEndState(); break; case ATNState.LOOP_END : s = new LoopEndState(); break;
default : default :
String message = String.format("The specified state type %d is not valid.", type); String message = String.format(Locale.getDefault(), "The specified state type %d is not valid.", type);
throw new IllegalArgumentException(message); throw new IllegalArgumentException(message);
} }

View File

@ -36,6 +36,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Locale;
/** /**
* The following images show the relation of states and * The following images show the relation of states and
@ -182,7 +183,7 @@ public abstract class ATNState {
epsilonOnlyTransitions = e.isEpsilon(); epsilonOnlyTransitions = e.isEpsilon();
} }
else if (epsilonOnlyTransitions != e.isEpsilon()) { else if (epsilonOnlyTransitions != e.isEpsilon()) {
System.err.format("ATN state %d has both epsilon and non-epsilon transitions.\n", stateNumber); System.err.format(Locale.getDefault(), "ATN state %d has both epsilon and non-epsilon transitions.\n", stateNumber);
epsilonOnlyTransitions = false; epsilonOnlyTransitions = false;
} }

View File

@ -42,6 +42,7 @@ import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.misc.Nullable; import org.antlr.v4.runtime.misc.Nullable;
import java.io.OutputStream; import java.io.OutputStream;
import java.util.Locale;
/** "dup" of ParserInterpreter */ /** "dup" of ParserInterpreter */
public class LexerATNSimulator extends ATNSimulator { public class LexerATNSimulator extends ATNSimulator {
@ -171,7 +172,7 @@ public class LexerATNSimulator extends ATNSimulator {
ATNState startState = atn.modeToStartState.get(mode); ATNState startState = atn.modeToStartState.get(mode);
if ( debug ) { if ( debug ) {
System.out.format("matchATN mode %d start: %s\n", mode, startState); System.out.format(Locale.getDefault(), "matchATN mode %d start: %s\n", mode, startState);
} }
int old_mode = mode; int old_mode = mode;
@ -188,7 +189,7 @@ public class LexerATNSimulator extends ATNSimulator {
int predict = execATN(input, next); int predict = execATN(input, next);
if ( debug ) { if ( debug ) {
System.out.format("DFA after matchATN: %s\n", decisionToDFA[old_mode].toLexerString()); System.out.format(Locale.getDefault(), "DFA after matchATN: %s\n", decisionToDFA[old_mode].toLexerString());
} }
return predict; return predict;
@ -197,7 +198,7 @@ public class LexerATNSimulator extends ATNSimulator {
protected int execATN(@NotNull CharStream input, @NotNull DFAState ds0) { protected int execATN(@NotNull CharStream input, @NotNull DFAState ds0) {
//System.out.println("enter exec index "+input.index()+" from "+ds0.configs); //System.out.println("enter exec index "+input.index()+" from "+ds0.configs);
if ( debug ) { if ( debug ) {
System.out.format("start state closure=%s\n", ds0.configs); System.out.format(Locale.getDefault(), "start state closure=%s\n", ds0.configs);
} }
int t = input.LA(1); int t = input.LA(1);
@ -206,7 +207,7 @@ public class LexerATNSimulator extends ATNSimulator {
while ( true ) { // while more work while ( true ) { // while more work
if ( debug ) { if ( debug ) {
System.out.format("execATN loop starting closure: %s\n", s.configs); System.out.format(Locale.getDefault(), "execATN loop starting closure: %s\n", s.configs);
} }
// As we move src->trg, src->trg, we keep track of the previous trg to // As we move src->trg, src->trg, we keep track of the previous trg to
@ -316,7 +317,7 @@ public class LexerATNSimulator extends ATNSimulator {
} }
if ( debug ) { if ( debug ) {
System.out.format("testing %s at %s\n", getTokenName(t), c.toString(recog, true)); System.out.format(Locale.getDefault(), "testing %s at %s\n", getTokenName(t), c.toString(recog, true));
} }
int n = c.state.getNumberOfTransitions(); int n = c.state.getNumberOfTransitions();
@ -339,7 +340,7 @@ public class LexerATNSimulator extends ATNSimulator {
int index, int line, int charPos) int index, int line, int charPos)
{ {
if ( debug ) { if ( debug ) {
System.out.format("ACTION %s:%d\n", recog != null ? recog.getRuleNames()[ruleIndex] : ruleIndex, actionIndex); System.out.format(Locale.getDefault(), "ACTION %s:%d\n", recog != null ? recog.getRuleNames()[ruleIndex] : ruleIndex, actionIndex);
} }
if ( actionIndex>=0 && recog!=null ) recog.action(null, ruleIndex, actionIndex); if ( actionIndex>=0 && recog!=null ) recog.action(null, ruleIndex, actionIndex);
@ -394,10 +395,10 @@ public class LexerATNSimulator extends ATNSimulator {
if ( config.state instanceof RuleStopState ) { if ( config.state instanceof RuleStopState ) {
if ( debug ) { if ( debug ) {
if ( recog!=null ) { if ( recog!=null ) {
System.out.format("closure at %s rule stop %s\n", recog.getRuleNames()[config.state.ruleIndex], config); System.out.format(Locale.getDefault(), "closure at %s rule stop %s\n", recog.getRuleNames()[config.state.ruleIndex], config);
} }
else { else {
System.out.format("closure at rule stop %s\n", config); System.out.format(Locale.getDefault(), "closure at rule stop %s\n", config);
} }
} }

View File

@ -32,6 +32,7 @@ package org.antlr.v4.runtime.tree.gui;
import java.awt.Font; import java.awt.Font;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale;
import java.util.Map; import java.util.Map;
public class PostScriptDocument { public class PostScriptDocument {
@ -83,7 +84,7 @@ public class PostScriptDocument {
public void boundingBox(int w, int h) { public void boundingBox(int w, int h) {
boundingBoxWidth = w; boundingBoxWidth = w;
boundingBoxHeight = h; boundingBoxHeight = h;
boundingBox = String.format("%%%%BoundingBox: %d %d %d %d\n", 0,0, boundingBox = String.format(Locale.US, "%%%%BoundingBox: %d %d %d %d\n", 0,0,
boundingBoxWidth,boundingBoxHeight); boundingBoxWidth,boundingBoxHeight);
} }
@ -134,7 +135,7 @@ public class PostScriptDocument {
psname = this.fontName; psname = this.fontName;
} }
ps.append(String.format("/%s findfont %d scalefont setfont\n", psname, fontSize)); ps.append(String.format(Locale.US, "/%s findfont %d scalefont setfont\n", psname, fontSize));
} }
public void lineWidth(double w) { public void lineWidth(double w) {
@ -143,11 +144,11 @@ public class PostScriptDocument {
} }
public void move(double x, double y) { public void move(double x, double y) {
ps.append(String.format("%1.3f %1.3f moveto\n", x, y)); ps.append(String.format(Locale.US, "%1.3f %1.3f moveto\n", x, y));
} }
public void lineto(double x, double y) { public void lineto(double x, double y) {
ps.append(String.format("%1.3f %1.3f lineto\n", x, y)); ps.append(String.format(Locale.US, "%1.3f %1.3f lineto\n", x, y));
} }
public void line(double x1, double y1, double x2, double y2) { public void line(double x1, double y1, double x2, double y2) {
@ -164,7 +165,7 @@ public class PostScriptDocument {
/** Make red box */ /** Make red box */
public void highlight(double x, double y, double width, double height) { public void highlight(double x, double y, double width, double height) {
ps.append(String.format("%1.3f %1.3f %1.3f %1.3f highlight\n", x, y, width, height)); ps.append(String.format(Locale.US, "%1.3f %1.3f %1.3f %1.3f highlight\n", x, y, width, height));
} }
public void stroke() { public void stroke() {
@ -172,11 +173,11 @@ public class PostScriptDocument {
} }
// public void rarrow(double x, double y) { // public void rarrow(double x, double y) {
// ps.append(String.format("%1.3f %1.3f rarrow\n", x,y)); // ps.append(String.format(Locale.US, "%1.3f %1.3f rarrow\n", x,y));
// } // }
// //
// public void darrow(double x, double y) { // public void darrow(double x, double y) {
// ps.append(String.format("%1.3f %1.3f darrow\n", x,y)); // ps.append(String.format(Locale.US, "%1.3f %1.3f darrow\n", x,y));
// } // }
public void text(String s, double x, double y) { public void text(String s, double x, double y) {
@ -197,7 +198,7 @@ public class PostScriptDocument {
} }
s = buf.toString(); s = buf.toString();
move(x,y); move(x,y);
ps.append(String.format("(%s) show\n", s)); ps.append(String.format(Locale.US, "(%s) show\n", s));
stroke(); stroke();
} }