-
-
Notifications
You must be signed in to change notification settings - Fork 925
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Truffle] Update sprintf per code review comments
- 9.4.12.0
- 9.4.11.0
- 9.4.10.0
- 9.4.9.0
- 9.4.8.0
- 9.4.7.0
- 9.4.6.0
- 9.4.5.0
- 9.4.4.0
- 9.4.3.0
- 9.4.2.0
- 9.4.1.0
- 9.4.0.0
- 9.3.15.0
- 9.3.14.0
- 9.3.13.0
- 9.3.12.0
- 9.3.11.0
- 9.3.10.0
- 9.3.9.0
- 9.3.8.0
- 9.3.7.0
- 9.3.6.0
- 9.3.5.0
- 9.3.4.0
- 9.3.3.0
- 9.3.2.0
- 9.3.1.0
- 9.3.0.0
- 9.2.21.0
- 9.2.20.1
- 9.2.20.0
- 9.2.19.0
- 9.2.18.0
- 9.2.17.0
- 9.2.16.0
- 9.2.15.0
- 9.2.14.0
- 9.2.13.0
- 9.2.12.0
- 9.2.11.1
- 9.2.11.0
- 9.2.10.0
- 9.2.9.0
- 9.2.8.0
- 9.2.7.0
- 9.2.6.0
- 9.2.5.0
- 9.2.4.1
- 9.2.4.0
- 9.2.3.0
- 9.2.2.0
- 9.2.1.0
- 9.2.0.0
- 9.1.17.0
- 9.1.16.0
- 9.1.15.0
- 9.1.14.0
- 9.1.13.0
- 9.1.12.0
- 9.1.11.0
- 9.1.10.0
- 9.1.9.0
- 9.1.8.0
- 9.1.7.0
- 9.1.6.0
- 9.1.5.0
- 9.1.4.0
- 9.1.3.0
Brandon Fish
committed
Jul 15, 2016
1 parent
b01533b
commit 7bd4e8a
Showing
8 changed files
with
280 additions
and
239 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
220 changes: 220 additions & 0 deletions
220
truffle/src/main/java/org/jruby/truffle/core/format/printf/SprintfConfig.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,220 @@ | ||
/* | ||
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved. This | ||
* code is released under a tri EPL/GPL/LGPL license. You can use it, | ||
* redistribute it and/or modify it under the terms of the: | ||
* | ||
* Eclipse Public License version 1.0 | ||
* GNU General Public License version 2 | ||
* GNU Lesser General Public License version 2.1 | ||
*/ | ||
package org.jruby.truffle.core.format.printf; | ||
|
||
import org.jruby.truffle.core.format.exceptions.InvalidFormatException; | ||
|
||
public class SprintfConfig { | ||
|
||
public enum FormatType { | ||
INTEGER, FLOAT, OTHER | ||
} | ||
|
||
private boolean literal = false; | ||
private byte[] literalBytes; | ||
|
||
private byte[] namesBytes; | ||
private boolean argWidth = false; | ||
|
||
private Integer absoluteArgumentIndex; | ||
private Integer precision; | ||
private boolean precisionArg = false; | ||
private boolean precisionVisited = false; | ||
private Integer width; | ||
private boolean hasSpace = false; | ||
private boolean fsharp = false; // # | ||
private boolean plus = false; | ||
private boolean minus = false; | ||
private boolean zero = false; | ||
private boolean widthStar = false; | ||
private boolean precisionStar = false; | ||
private char format; | ||
private FormatType formatType; | ||
|
||
|
||
public void checkForFlags() { | ||
if (hasWidth()) { | ||
throw new InvalidFormatException("flag after width"); | ||
} | ||
if (hasPrecision()) { | ||
throw new InvalidFormatException("flag after precision"); | ||
} | ||
} | ||
|
||
public void checkForWidth() { | ||
if (hasWidth()) { | ||
throw new InvalidFormatException("width given twice"); | ||
} | ||
if (hasPrecision()) { | ||
throw new InvalidFormatException("width after precision"); | ||
} | ||
} | ||
|
||
public boolean isHasSpace() { | ||
return hasSpace; | ||
} | ||
|
||
public void setHasSpace(boolean hasSpace) { | ||
this.hasSpace = hasSpace; | ||
} | ||
|
||
public Integer getPrecision() { | ||
return precision; | ||
} | ||
|
||
public void setPrecision(int precision) { | ||
this.precision = precision; | ||
} | ||
|
||
public void setPrecision(Integer precision) { | ||
this.precision = precision; | ||
} | ||
|
||
public Integer getWidth() { | ||
return width; | ||
} | ||
|
||
public void setWidth(Integer width) { | ||
this.width = width; | ||
} | ||
|
||
public boolean isFsharp() { | ||
return fsharp; | ||
} | ||
|
||
public void setFsharp(boolean fsharp) { | ||
this.fsharp = fsharp; | ||
} | ||
|
||
public boolean isPlus() { | ||
return plus; | ||
} | ||
|
||
public void setPlus(boolean plus) { | ||
this.plus = plus; | ||
} | ||
|
||
public boolean isMinus() { | ||
return minus; | ||
} | ||
|
||
public void setMinus(boolean minus) { | ||
this.minus = minus; | ||
} | ||
|
||
public boolean isZero() { | ||
return zero; | ||
} | ||
|
||
public void setZero(boolean zero) { | ||
this.zero = zero; | ||
} | ||
|
||
public FormatType getFormatType() { | ||
return formatType; | ||
} | ||
|
||
public void setFormatType(FormatType formatType) { | ||
this.formatType = formatType; | ||
} | ||
|
||
public char getFormat() { | ||
return format; | ||
} | ||
|
||
public void setFormat(char format) { | ||
this.format = format; | ||
} | ||
|
||
public boolean isWidthStar() { | ||
return widthStar; | ||
} | ||
|
||
public void setWidthStar(boolean widthStar) { | ||
this.widthStar = widthStar; | ||
} | ||
|
||
public boolean isPrecisionStar() { | ||
return precisionStar; | ||
} | ||
|
||
public void setPrecisionStar(boolean precisionStar) { | ||
this.precisionStar = precisionStar; | ||
} | ||
|
||
public boolean hasPrecision() { | ||
return precision != null || precisionStar || precisionVisited; | ||
} | ||
|
||
public boolean hasWidth() { | ||
return width != null || widthStar; | ||
} | ||
|
||
public boolean isLiteral() { | ||
return literal; | ||
} | ||
|
||
public void setLiteral(boolean literal) { | ||
this.literal = literal; | ||
} | ||
|
||
public byte[] getLiteralBytes() { | ||
return literalBytes; | ||
} | ||
|
||
public void setLiteralBytes(byte[] literalBytes) { | ||
this.literalBytes = literalBytes; | ||
} | ||
|
||
public Integer getAbsoluteArgumentIndex() { | ||
return absoluteArgumentIndex; | ||
} | ||
|
||
public void setAbsoluteArgumentIndex(Integer absoluteArgumentIndex) { | ||
this.absoluteArgumentIndex = absoluteArgumentIndex; | ||
} | ||
|
||
public boolean isArgWidth() { | ||
return argWidth; | ||
} | ||
|
||
public void setArgWidth(boolean argWidth) { | ||
this.argWidth = argWidth; | ||
} | ||
|
||
|
||
public boolean isPrecisionVisited() { | ||
return precisionVisited; | ||
} | ||
|
||
public void setPrecisionVisited(boolean precisionVisited) { | ||
this.precisionVisited = precisionVisited; | ||
} | ||
|
||
public byte[] getNamesBytes() { | ||
return namesBytes; | ||
} | ||
|
||
public void setNamesBytes(byte[] namesBytes) { | ||
this.namesBytes = namesBytes; | ||
} | ||
|
||
public boolean isPrecisionArg() { | ||
return precisionArg; | ||
} | ||
|
||
public void setPrecisionArg(boolean precisionArg) { | ||
this.precisionArg = precisionArg; | ||
} | ||
|
||
public boolean hasFlags() { | ||
return literal || precision != null || precisionVisited || width != null || hasSpace || fsharp || plus || minus || zero || precisionStar || widthStar || formatType != null; | ||
} | ||
} |