-- File format is two strings and a return statement with them in it:
-- string in quotes [=[ ... builtin_units ... ]=].
-- string in quotes [=[ ... builtin_units_long_scale ... ]=].
-- First string, builtin_units, is short-scale, second string is long scale.

-- Entry format:
-- One record per line, starting in first column, having 2-4 fields.
-- Field separator: two or more spaces
-- Between first and second fields: two or more spaces
-- Between all other fields: two or more spaces, or one or more tabs
-- Entries without two spaces in them are ignored.

-- There must be a blank line before the first entry and after the last.
-- I.e. the first two and last two characters of the string must be newlines.

-- Format of entry. Two record types:
--
-- One record type is a wikilink:
-- Unit-code Symbol-accepts-HTML-only 
-- Text-field separator is still two spaces. Two spaces not allowed in wikilink.
--
-- The other record type is all fields:
-- Unit-code symbol-accepts-HTML-only pagename#section-OK
--
-- Plus there is an optional field that goes at the end after two or more spaces.
-- Whether it is a number or an equation or the letters SI,
-- any of these three has the same function: a wikitable sorting "scale".
-- It is for sorting, and it works for either record type.
-- Difference is SI can't accept HTML. But SI correctly scales any SI prefix.
-- (Optional fields ALIAS and NOSPACE and ANGLE are for advanced users.)

-- "Invalid unit" error:
-- Using SI requires that the symbol equal unit-code, so never allows HTML.
-- Any difference between SI or symbol must be an SI prefix, such as k, M, or G.
-- A space at the end of an entry is an error. No space at each EOL.

local builtin_units = [=[

## Test
Foo 
Baz baz
Baz baz
Bar bar
quux

## Unsorted units
c0 ''c''
lbf  
C/mol C/mol
C.mol-1 C&sdot;mol
C/kg C/kg
C.kg-1 C&sdot;kg
F.m-1 F&sdot;m
F/m F/m
e ''e''

## Time and frequency
byte/s byte/s 8
kB/s  8e3
MB/s  8e6
GB/s  8e9
TB/s  8e12
bit/s bit/s 1
bps bit/s 1
kbit/s kbit/s 1e3
Mbit/s Mbit/s 1e6
Gbit/s Gbit/s 1e9
Tbit/s Tbit/s 1e12
kT/s  1e3
MT/s  1e6
GT/s  1e9
year year 31557600
years years 31557600
yr yr 31557600
y y 31557600
a a 31557600
Ga Ga 31557600000000000
Ma Ma 31557600000000
ka ka 31557600000
kyr kyr 31557600000
kya kya 31557600000
myr myr 31557600000000
mya mya 31557600000000
byr byr 31557600000000000
bya bya 31557600000000000
Gyr Ga 31557600000000000
BP BP
uBP C yr BP
BC BC -1
AD AD 1
BCE BCE -1
CE CE 1
JD JD 1
MJD MJD 1

s-1 s
s-2 s
s2 s

s s SI
as s SI
cs s SI
das s SI
ds s SI
Es s SI
fs s SI
Gs s SI
hs s SI
ks s SI
ms s SI
µs s SI
us s SI
Ms s SI
ns s SI
ps s SI
Ps s SI
Ts s SI
Ys s SI
ys s SI
Zs s SI
zs s SI

Hz Hz SI
aHz Hz SI
cHz Hz SI
daHz Hz SI
dHz Hz SI
EHz Hz SI
fHz Hz SI
hHz Hz SI
GHz Hz SI
kHz Hz SI
MHz Hz SI
mHz Hz SI
uHz Hz SI
µHz Hz SI
nHz Hz SI
pHz Hz SI
PHz Hz SI
THz Hz SI
yHz Hz SI
YHz Hz SI
zHz Hz SI
ZHz Hz SI

## Length, area, volume
fb-1 fb
m-1 m
m-2 m
m-3 m
km2 km
km3 km
µm2 µm
um2 µm
am2 am
cm2 cm
dam2 dam
dm2 dm
Em2 Em
fm2 fm
Gm2 Gm
hm2 hm
mm2 mm
Mm2 Mm
nm2 nm
pm2 pm
Pm2 Pm
Tm2 Tm
ym2 ym
Ym2 Ym
zm2 zm
Zm2 Zm
gal gal
Gal Gal
uGal µGal
µGal µGal
mGal mGal

b b SI
ab b SI
cb b SI
dab b SI
db b SI
Eb b SI
fb b SI
Gb b SI
hb b SI
kb b SI
mb b SI
µb b SI
ub b SI
Mb b SI
nb b SI
pb b SI
Pb b SI
Tb b SI
Yb b SI
yb b SI
Zb b SI
zb b SI

## 속도와 가속도
m/s2 m/s
m.s-2 m&sdot;s
m/s m/s
km/s km/s
m.s-1 m&sdot;s
km.s-1 km&sdot;s

## Mass and energy
lbm 
uJ µJ
J.s J&sdot;s
kWh kWh
kW.h kW&sdot;h
J/C J/C
J/kg J/kg

Da Da SI
EDa Da SI
PDa Da SI
TDa Da SI
GDa Da SI
MDa Da SI
kDa Da SI
mDa Da SI
uDa Da SI
μDa Da SI
nDa Da SI
pDa Da SI
fDa Da SI
aDa Da SI

g g SI
ag g SI
cg g SI
dag g SI
dg g SI
Eg g SI
fg g SI
Gg g SI
hg g SI
kg g SI
mcg g SI
Mg g SI
mg g SI
ug g SI
µg g SI
ng g SI
Pg g SI
pg g SI
Tg g SI
yg g SI
Yg g SI
zg g SI
Zg g SI

## Pressure and density
psi psi
g.cm-3 g&sdot;cm
g/cm3 g/cm
kg.m-3 kg&sdot;m
kg/m3 kg/m
kg/cm3 kg/cm
g/L g/L
g/l g/l
mcg/dL µg/dL
mcg/dl µg/dl
mg/mL mg/mL
mg/ml mg/ml
ug/dL µg/dL
ug/dl µg/dl
μg/dL μg/dL
μg/dl μg/dl
mg.L-1 
mg/L 
mg.l-1 
mg/l

## Temperature
degC °C ALIAS
degF °F ALIAS
degR °R ALIAS

K K SI
YK K SI
ZK K SI
EK K SI
PK K SI
TK K SI
GK K SI
MK K SI
kK K SI
hK K SI
daK K SI
dK K SI
cK K SI
mK K SI
µK K SI
uK K SI
nK K SI
pK K SI
fK K SI
aK K SI
zK K SI
yK K SI

## Electromagnetism
Wb Wb
N.A-2 N&sdot;A
H.m-1 H&sdot;m
V.m-1 V&sdot;m
V/m V/m

C C SI
YC C SI
ZC C SI
EC C SI
PC C SI
TC C SI
GC C SI
MC C SI
kC C SI
hC C SI
daC C SI
dC C SI
cC C SI
mC C SI
µC C SI
uC C SI
nC C SI
pC C SI
fC C SI
aC C SI
zC C SI
yC C SI

F F SI
YF F SI
ZF F SI
EF F SI
PF F SI
TF F SI
GF F SI
MF F SI
kF F SI
hF F SI
daF F SI
dF F SI
cF F SI
mF F SI
µF F SI
uF F SI
nF F SI
pF F SI
fF F SI
aF F SI
zF F SI
yF F SI

H H SI
YH H SI
ZH H SI
EH H SI
PH H SI
TH H SI
GH H SI
MH H SI
kH H SI
hH H SI
daH H SI
dH H SI
cH H SI
mH H SI
µH H SI
uH H SI
nH H SI
pH H SI
fH H SI
aH H SI
zH H SI
yH H SI

A A SI
YA A SI
ZA A SI
EA A SI
PA A SI
TA A SI
GA A SI
MA A SI
kA A SI
hA A SI
daA A SI
dA A SI
cA A SI
mA A SI
µA A SI
uA A SI
nA A SI
pA A SI
fA A SI
aA A SI
zA A SI
yA A SI

V V SI
YV V SI
ZV V SI
EV V SI
PV V SI
TV V SI
GV V SI
MV V SI
kV V SI
hV V SI
daV V SI
dV V SI
cV V SI
mV V SI
µV V SI
uV V SI
nV V SI
pV V SI
fV V SI
aV V SI
zV V SI
yV V SI

VA VA SI
YVA VA SI
ZVA VA SI
EVA VA SI
PVA VA SI
TVA VA SI
GVA VA SI
MVA VA SI
kVA VA SI
hVA VA SI
daVA VA SI
dVA VA SI
cVA VA SI
mVA VA SI
µVA VA SI
uVA VA SI
nVA VA SI
pVA VA SI
fVA VA SI
aVA VA SI
zVA VA SI
yVA VA SI

R R SI

G G SI
aG G SI
cG G SI
daG G SI
dG G SI
EG G SI
fG G SI
GG G SI
hG G SI
kG G SI
MG G SI
mG G SI
uG G SI
µG G SI
nG G SI
PG G SI
pG G SI
TG G SI
yG G SI
YG G SI
zG G SI
ZG G SI

T T SI
aT T SI
cT T SI
daT T SI
dT T SI
ET T SI
fT T SI
GT T SI
hT T SI
kT T SI
MT T SI
mT T SI
uT T SI
µT T SI
nT T SI
PT T SI
pT T SI
TT T SI
yT T SI
YT T SI
zT T SI
ZT T SI

## Astrophysics
au au
c ''c''
ly ly
Earth mass ''M''
Earth radius ''R''
M_Earth ''M''
R_Earth ''R''
M+ ''M''
R+ ''R''
Jupiter mass ''M''
Jupiter radius ''R''
M_Jupiter ''M''
R_Jupiter ''R''
Solar mass ''M''
solar mass ''M''
태양질량 ''M''
M_Solar ''M''
M_solar ''M''
R_Solar ''R''
R_solar ''R''
Solar radius ''R''
solar radius ''R''
태양반경 ''R''
Solar luminosity ''L''
solar luminosity ''L''
태양 광도 ''L''
태양광도 ''L''
L_solar ''L''
L_Solar ''L''
Lo ''L''
pc2 pc
pc3 pc
kpc2 kpc
kpc3 kpc
kpc kpc
Mpc2 Mpc
Mpc3 Mpc
Mpc Mpc
Gpc2 Gpc
Gpc3 Gpc
Gpc Gpc

## Nuclear physics and chemistry
cm-1 cm
u u
osmol osmol
Osm Osm
M M
TM M SI
GM M SI
MM M SI
kM M SI
hM M SI
daM M SI
dM M SI
cM M SI
mM M SI
uM M 1e-6
nM M SI
pM M SI
kg/mol M
kg.mol-1 kg&sdot;mol
g/mol g/mol
g.mol-1 g&sdot;mol
eV/c2 eV/''c''
keV/c2 keV/''c''
MeV/c2 MeV/''c''
GeV/c2 GeV/''c''
TeV/c2 TeV/''c''
µN µ
µB µ
eV eV
mev meV
keV keV
MeV MeV
GeV GeV
TeV TeV
mol-1 mol
J/mol J/mol
J.mol-1 J&sdot;mol
kJ.mol-1 kJ&sdot;mol
kJ/mol kJ/mol
MJ.mol-1 MJ&sdot;mol
MJ/mol MJ/mol
GJ/mol GJ/mol
GJ.mol-1 GJ&sdot;mol
TJ.mol-1 TJ&sdot;mol
TJ/mol TJ/mol

## Numbers and phrases
pp pp
ppb ppb 1e-9
ppm ppm 1e-6
billiard billiard 1e15
billion billion 1e9
billionth billionth 1e-9
billionths billionths 1e-9
decilliard decilliard 1e63
decillion decillion 1e33
decillionth decillionth 1e-33
decillionths decillionths 1e-33
milliard milliard 1e9
million million 1e6
millionth millionth 1e-6
millionths millionths 1e-6
nonilliard nonilliard 1e57
nonillion nonillion 1e30
nonillionth nonillionth 1e-30
nonillionths nonillionths 1e-30
octilliard octilliard 1e51
octillion octillion 1e27
octillionth octillionth 1e-27
octillionths octillionths 1e-27
quadrilliard quadrilliard 1e27
quadrillion quadrillion 1e15
quadrillionth quadrillionth 1e-15
quadrillionths quadrillionths 1e-15
quintilliard quintilliard 1e33
quintillion quintillion 1e18
quintillionth quintillionth 1e-18
quintillionths quintillionths 1e-18
septilliard septilliard 1e45
septillion septillion 1e24
septillionth septillionth 1e-24
septillionths septillionths 1e-24
sextilliard sextilliard 1e39
sextillion sextillion 1e21
sextillionth sextillionth 1e-21
sextillionths sextillionths 1e-21
trilliard trilliard 1e21
trillion trillion 1e12
trillionth trillionth 1e-12
trillionths trillionths 1e-12

## Angles
% % 백분율 ANGLE 0.01
percent % 백분율 ANGLE 0.01
per cent % 백분율 ANGLE 0.01
‰ ‰ 천분율 ANGLE 1e-3
per mil ‰ 천분율 ANGLE 1e-3
per mill ‰ 천분율 ANGLE 1e-3
per mille ‰ 천분율 ANGLE 1e-3
permil ‰ 천분율 ANGLE 1e-3
permill ‰ 천분율 ANGLE 1e-3
permille ‰ 천분율 ANGLE 1e-3
° ° 도 (각도) ANGLE pi/180
deg ° 도 (각도) ANGLE pi/180
' ′ Minute of arc ANGLE pi/10800
′ ′ Minute of arc ANGLE pi/10800
arcmin ′ Minute of arc ANGLE pi/10800
arcminute ′ Minute of arc ANGLE pi/10800
" ″ Second of arc ANGLE pi/648000
″ ″ Second of arc ANGLE pi/648000
arcsec ″ Second of arc ANGLE pi/648000
arcsecond ″ Second of arc ANGLE pi/648000
mas mas pi/648000000

]=]

-- If val has "|long scale=on" the following definitions are used
-- .
-- Unit code Symbol Flags/Scale
local builtin_units_long_scale = [=[

## Long scale numbers and phrases
billion billion 1e12
billionth billionth 1e-12
billionths billionths 1e-12
decillion decillion 1e60
decillionth decillionth 1e-60
decillionths decillionths 1e-60
nonillion nonillion 1e54
nonillionth nonillionth 1e-54
nonillionths nonillionths 1e-54
octillion octillion 1e48
octillionth octillionth 1e-48
octillionths octillionths 1e-48
quadrillion quadrillion 1e24
quadrillionth quadrillionth 1e-24
quadrillionths quadrillionths 1e-24
quintillion quintillion 1e30
quintillionth quintillionth 1e-30
quintillionths quintillionths 1e-30
septillion septillion 1e42
septillionth septillionth 1e-42
septillionths septillionths 1e-42
sextillion sextillion 1e36
sextillionth sextillionth 1e-36
sextillionths sextillionths 1e-36
trillion trillion 1e18
trillionth trillionth 1e-18
trillionths trillionths 1e-18
]=]