Class LocalUnitFormat

  • All Implemented Interfaces:
    UnitFormat

    public class LocalUnitFormat
    extends AbstractUnitFormat

    This class represents the locale sensitive format.

    Here is the grammar for CommonUnits 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 & 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> := <mix_expr>
    <mix_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.6, October 4, 2024
    Author:
    Eric Russell, Werner Keil