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 StringName of the resource bundleprivate static final EBNFUnitFormatDefault locale instance.private final SymbolMapThe symbol map used by this instance to map betweens andinvalid reference
UnitStrings, etc... -
Constructor Summary
ConstructorsModifierConstructorDescription(package private)Base constructor.privateEBNFUnitFormat(SymbolMap symbols) Private constructor. -
Method Summary
Modifier and TypeMethodDescriptionformat(javax.measure.Unit<?> unit, Appendable appendable) Formats the specified unit.static EBNFUnitFormatReturns the instance for the current default locale (non-ascii characters are allowed)static EBNFUnitFormatgetInstance(SymbolMap symbols) Returns an instance for the given symbol map.protected SymbolMapGet the symbol map used by this instance to map betweens andinvalid reference
UnitStrings, etc...booleanjavax.measure.Unit<?> parse(CharSequence csq) protected javax.measure.Unit<?> parse(CharSequence csq, int index) Parses a portion of the specifiedCharSequencefrom 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 specifiedCharSequencefrom the specified position to produce a unit.Methods inherited from class AbstractUnitFormat
format, format, label
-
Field Details
-
BUNDLE_NAME
-
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 betweens andinvalid reference
UnitStrings, 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 betweens andinvalid reference
UnitStrings, etc...- Specified by:
getSymbolsin classAbstractUnitFormat- Returns:
- SymbolMap the current symbol map
-
format
Description copied from class:AbstractUnitFormatFormats the specified unit.- Specified by:
formatin interfacejavax.measure.format.UnitFormat- Specified by:
formatin 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:AbstractUnitFormatParses a portion of the specifiedCharSequencefrom the specified position to produce a unit. If there is no unit to parseAbstractUnit.ONEis returned.- Specified by:
parsein classAbstractUnitFormat- Parameters:
csq- theCharSequenceto 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:AbstractUnitFormatParses a portion of the specifiedCharSequencefrom the specified position to produce a unit. If there is no unit to parseAbstractUnit.ONEis returned.- Specified by:
parsein classAbstractUnitFormat- Parameters:
csq- theCharSequenceto 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()
-