/* (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 in Java)" */ component grammar SIUnitTypes4Computing extends de.monticore.types.MCBasicTypes, de.monticore.siunit.SIUnitTypes4Math { interface SIUnitType4ComputingInt extends MCType = MCPrimitiveType SIUnit; SIUnitType4Computing implements SIUnitType4ComputingInt = "[" SIUnit "]" "<" MCPrimitiveType ">" ; }