Package tech.units.indriya.format
Class EBNFUnitFormat
java.lang.Object
tech.units.indriya.format.AbstractUnitFormat
tech.units.indriya.format.EBNFUnitFormat
- All Implemented Interfaces:
javax.measure.format.UnitFormat
This class represents the local neutral format.
Here is the grammar for Units in Extended Backus-Naur Form (EBNF)
Note that the grammar has been left-factored to be suitable for use by a top-down parser generator such as JavaCC
Lexical Entities: | ||
---|---|---|
<sign> | := | "+" | "-" |
<digit> | := | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" |
<superscript_digit> | := | "⁰" | "¹" | "²" | "³" | "⁴" | "⁵" | "⁶" | "⁷" | "⁸" | "⁹" |
<integer> | := | (<digit>)+ |
<number> | := | (<sign>)? (<digit>)* (".")? (<digit>)+ (("e" | "E") (<sign>)? (<digit>)+)? |
<exponent> | := | ( "^" ( <sign> )? <integer> ) | ( "^(" (<sign>)? <integer> ( "/" (<sign>)? <integer> )? ")" ) | ( <superscript_digit> )+ |
<initial_char> | := | ? Any Unicode character excluding the following: ASCII control invalid input: '&' whitespace (\u0000 - \u0020), decimal digits '0'-'9', '(' (\u0028), ')' (\u0029), '*' (\u002A), '+' (\u002B), '-' (\u002D), '.' (\u002E), '/' (\u005C), ':' (\u003A), '^' (\u005E), '²' (\u00B2), '³' (\u00B3), '·' (\u00B7), '¹' (\u00B9), '⁰' (\u2070), '⁴' (\u2074), '⁵' (\u2075), '⁶' (\u2076), '⁷' (\u2077), '⁸' (\u2078), '⁹' (\u2079) ? |
<unit_identifier> | := | <initial_char> ( <initial_char> | <digit> )* |
Non-Terminals: | ||
<unit_expr> | := | <compound_expr> |
<compound_expr> | := | <add_expr> ( ":" <add_expr> )* |
<add_expr> | := | ( <number> <sign> )? <mul_expr> ( <sign> <number> )? |
<mul_expr> | := | <exponent_expr> ( ( ( "*" | "·" ) <exponent_expr> ) | ( "/" <exponent_expr> ) )* |
<exponent_expr> | := | ( <atomic_expr> ( <exponent> )? ) | (<integer> "^" <atomic_expr>) | ( ( "log" ( <integer> )? ) | "ln" ) "(" <add_expr> ")" ) |
<atomic_expr> | := | <number> | <unit_identifier> | ( "(" <add_expr> ")" ) |
- Since:
- 1.0
- Version:
- 1.1, $Date: 2018-04-05 $
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
Name of the resource bundleprivate static final EBNFUnitFormat
Default locale instance.private final SymbolMap
The symbol map used by this instance to map betweeninvalid reference
Unit
String
s, etc... -
Constructor Summary
ConstructorsModifierConstructorDescription(package private)
Base constructor.private
EBNFUnitFormat
(SymbolMap symbols) Private constructor. -
Method Summary
Modifier and TypeMethodDescriptionformat
(javax.measure.Unit<?> unit, Appendable appendable) Formats the specified unit.static EBNFUnitFormat
Returns the instance for the current default locale (non-ascii characters are allowed)static EBNFUnitFormat
getInstance
(SymbolMap symbols) Returns an instance for the given symbol map.protected SymbolMap
Get the symbol map used by this instance to map betweeninvalid reference
Unit
String
s, etc...boolean
javax.measure.Unit
<?> parse
(CharSequence csq) protected javax.measure.Unit
<?> parse
(CharSequence csq, int index) Parses a portion of the specifiedCharSequence
from the specified position to produce a unit.protected javax.measure.Unit
<? extends javax.measure.Quantity<?>> parse
(CharSequence csq, ParsePosition cursor) Parses a portion of the specifiedCharSequence
from the specified position to produce a unit.Methods inherited from class tech.units.indriya.format.AbstractUnitFormat
format, format, label
-
Field Details
-
BUNDLE_NAME
Name of the resource bundle- See Also:
-
DEFAULT_INSTANCE
Default locale instance. If the default locale is changed after the class is initialized, this instance will no longer be used. -
symbolMap
The symbol map used by this instance to map betweeninvalid reference
Unit
String
s, etc...
-
-
Constructor Details
-
EBNFUnitFormat
EBNFUnitFormat()Base constructor. -
EBNFUnitFormat
Private constructor.- Parameters:
symbols
- the symbol mapping.
-
-
Method Details
-
getInstance
Returns the instance for the current default locale (non-ascii characters are allowed) -
getInstance
Returns an instance for the given symbol map. -
getSymbols
Get the symbol map used by this instance to map betweeninvalid reference
Unit
String
s, etc...- Specified by:
getSymbols
in classAbstractUnitFormat
- Returns:
- SymbolMap the current symbol map
-
format
Description copied from class:AbstractUnitFormat
Formats the specified unit.- Specified by:
format
in interfacejavax.measure.format.UnitFormat
- Specified by:
format
in classAbstractUnitFormat
- Parameters:
unit
- the unit to format.appendable
- the appendable destination.- Returns:
- The appendable destination passed in as
appendable
, with formatted text appended. - Throws:
IOException
- if an error occurs.
-
parse
protected javax.measure.Unit<? extends javax.measure.Quantity<?>> parse(CharSequence csq, ParsePosition cursor) throws javax.measure.format.ParserException Description copied from class:AbstractUnitFormat
Parses a portion of the specifiedCharSequence
from the specified position to produce a unit. If there is no unit to parseAbstractUnit.ONE
is returned.- Specified by:
parse
in classAbstractUnitFormat
- Parameters:
csq
- theCharSequence
to parse.cursor
- the cursor holding the current parsing index.- Returns:
- the unit parsed from the specified character sub-sequence.
- Throws:
javax.measure.format.ParserException
-
parse
Description copied from class:AbstractUnitFormat
Parses a portion of the specifiedCharSequence
from the specified position to produce a unit. If there is no unit to parseAbstractUnit.ONE
is returned.- Specified by:
parse
in classAbstractUnitFormat
- Parameters:
csq
- theCharSequence
to parse.index
- the current parsing index.- Returns:
- the unit parsed from the specified character sub-sequence.
- Throws:
IllegalArgumentException
- if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
-
parse
- Throws:
javax.measure.format.ParserException
-
isLocaleSensitive
public boolean isLocaleSensitive()
-