/* (c) https://github.com/MontiCore/monticore */
package de.monticore.siunit;
/* This is a MontiCore stable grammar.
* Adaptations -- if any -- are conservative. */
/**
* This grammar declares SI unit also as generic types
* based on all the available SI unit definitions.
* The type parameter can be a numeric type, describing the
* range of possible values (such as int, long, float, double).
*
* The definitions of the SI Unit type themselves (without type parameter)
* are fully compliant to the definitions given in
* International Bureau of Weights and Measures (20 May 2019),
* SI Brochure: The International System of Units (SI)
* (9th ed.)
*
* With this definition an SI Unit such as "kg/m"
* can also be used as type definition.
*
* An extension of the typecheck algorithms is available.
* The typecheck ensures correct typing of mathematical expressions.
*
* As a shortcut the type parameter may be omitted asumming double as
* default, i.e.
* "km" is identical to "km"
* (quite like "List" is identical to "List