# liblouis: Norwegian Grade 0 Braille Table, uncontracted braille
#
#  Copyright (C) 2004-2008 ViewPlus Technologies, Inc. www.viewplus.com
#  Copyright (C) 2004-2006 JJB Software, Inc. www.jjb-software.com
#  Copyright (C) 2009-2019 Lars Bjørndal <lars@lamasti.net>
#  Copyright (C) 2015-2018 NLB Norwegian library of talking books and braille, http://www.nlb.no/
#
#-copyright: 2004-2008, ViewPlus Technologies, Inc. www.viewplus.com
#-copyright: 2004-2006, JJB Software, Inc. www.jjb-software.com
#-copyright: 2009-2019, Lars Bjørndal <lars@lamasti.net>
#-copyright: 2015-2018, NLB Norwegian library of talking books and braille, http://www.nlb.no/
#
# Created June 9, 2005 by Leon Ungier <Leon.Ungier@ViewPlus.com> with
# help and guidance from Lars Bjørndal <lars@lamasti.net>
# Updated June 2009 by Lars Bjørndal <lars@lamasti.net>
# Updated April 2015 by Jostein Austvik Jacobsen <jostein@nlb.com> and Ammar Usama <ammar.usama@nlb.no>
#
#-author-name: Leon Ungier
#-author-email: Leon.Ungier@ViewPlus.com
#-author-url: www.viewplus.com
#
#-author-name: Lars Bjørndal
#-author-email: lars@lamasti.net
#-author-url: https://github.com/larsbjorndal
#
#-author-name: Jostein Austvik Jacobsen
#-author-email: jostein@nlb.no
#-author-url: https://github.com/josteinaj
#
#-author-name: Ammar Usama
#-author-email: ammar.usama@nlb.no
#-author-url: https://github.com/usama49
#
#  This file is part of liblouis.
#
#  liblouis is free software: you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as
#  published by the Free Software Foundation, either version 2.1 of the
#  License, or (at your option) any later version.
#
#  liblouis is distributed in the hope that it will be useful, but
#  WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with liblouis. If not, see
#  <http://www.gnu.org/licenses/>.
#

space \t 9                   # tab x0009
space \x001b 1b              # escape character for html back-translation # dec 27
space \x00A0 a               # NO-BREAK SPACE <noBreak> 0020 NON-BREAKING SPACE # dec 160
include spaces.uti

include digits8Dots.uti
include latinLetterDef6Dots.uti

punctuation ! 235            # exclamation mark x0021
punctuation " 256            # double quote x0022
punctuation ' 5              # apostrophe x0027
punctuation ( 236            # left parenthesis x0028
punctuation ) 356            # right parenthesis x0029
punctuation , 2              # coma x002C
punctuation . 3              # point x002E
punctuation : 25             # colon x003A
punctuation ; 23             # semicolon x003B
punctuation ? 26             # question mark x003F
punctuation [ 12356          # left square bracket x005B
punctuation ] 23456          # right square bracket x005D
punctuation { 6-12356        # left curly bracket x007B
punctuation } 6-23456        # right curly bracket x007D
punctuation « 256            # left-pointing double angle quotation mark x00AB
punctuation » 256            # right-pointing double angle quotation mark x00BB
punctuation \x2010 36        # 8208 hyphen
punctuation \x2011 36        # 8209 non-breaking hyphen
punctuation \x2012 36        # figure dash
punctuation \x2013 36-36     # en dash
punctuation \x2014 36-36     # em dash
punctuation \x002D 36        # hyphen-minus x002D
punctuation \x2018 5         # 8216 smart single left quotation mark
punctuation \x2019 5         # 8217 smart single right quotation mark
punctuation \x201C 256       # 8220 smart opening double quote
punctuation \x201D 256       # 8221 smart closing double quote
punctuation \x201E 256       # 8222 smart double low quotation mark
punctuation \x201F 256       # 8223 smart double high reverse quotation mark
punctuation \x2026 3-3-3     # 8230 smart ellipsis
punctuation \x2212 36        # 8722 minus sign

sign # 3456                  # number sign x0023
sign $ 256                   # dollar sign x0024
sign £ 123                   # pound sign
sign % 46-356                # percent sign x0025
sign ‰ 46-356-356            # per mille sign
sign & 346                   # ampersand z0026
sign * 35                    # asterisk x002A
sign @ 4                     # commercial at x0040
sign \\ 156                  # reverse solidus x005C
sign ^ 46                    # circumflex accent x005E (math power)
sign _ 456                   # low line x005F
sign ` 45                    # grave accent x0060
sign \x00AF 45               # macron
sign \x0304 45               # combining macron
uplow \x00C9\x00E9 123456    # e with acute é x00C9 / 00E9
sign | 123456                # vertical line x007C
sign ~ 1456                  # tilde x007E
sign \x0080 15-136-1235-135  # Euro sign x0080
sign ¢ 4-14                  # cent sign x00A2
sign £ 45-123                # pound sign x00A3
sign ¤ 236-134-356           # currency sign x00A4
sign ¥ 45-13456              # yen sign x00A5
sign § 346                   # section sign x00A7
sign © 236-14-356            # copyright x00A9
sign ® 236-1235-356          # Registered trademark
sign ™ 236-2345-356          # Trademark
sign ° 5-356                 # degree sign x00B0
sign ² 4-6-126               # superscript 2 sign x00B2
sign ³ 4-6-146               # superscript 3 sign x00B3
sign \x00B4 4                # acute sign dec-180
sign ¹ 1-27                  # superscript 1 sign x00B9
sign \x20AC 26               # Euro sign x0080
sign ■ 123456                # Filled square
sign □ 123456                # Empty square
sign ● 2356                  # Filled circle
sign ○ 2356                  # Empty circle
sign • 2356                  # Bullet
sign ß 35-234                # Latin Small Letter Sharp S

uplow Αα 1                   # alpha
uplow Ββ 12                  # beta
uplow Γγ 1245                # gamma
uplow Δδ 145                 # delta
uplow Εε 15                  # epsilon
uplow Ζζ 1356                # zeta
uplow Ηη 5                   # eta
uplow Θθ 4                   # theta
uplow Ιι 24                  # iota
uplow Κκ 13                  # kappa
uplow Λλ 123                 # lambda
uplow Μμ 134                 # my
uplow Νν 1345                # ny
uplow Ξξ 1346                # ksi
uplow Οο 135                 # omikron
uplow Ππ 1234                # pi
uplow Ρρ 1235                # rho
uplow Σς 234                 # sigma
uplow Ττ 2345                # tau
uplow Υυ 136                 # ypsilon
uplow Φφ 124                 # fi
uplow Χχ 12346               # khi
uplow Ψψ 13456               # psi
uplow Ωω 2456                # omega

uplow \x00C8\x00E8 2346      # e with grave è x00C8 / 00E8
uplow \x00CA\x00EA 126       # e with circumflex x00CA / 00EA
uplow \x010C\x010D 146       # c with caron x00CE / 00EE
uplow \x00CF\x00EF 34        # i with diaeresis x00CF / 00EF
uplow \x00D4\x00F4 46-135    # o with circumflex ô x00D4 / 00F4
uplow \x00CD\x00ED 126       # i with acute x00CD / 00ED
uplow \x00C6\x00E6 345       # æ x00C6 / 00E6
uplow Åå 16                  # A with ring above x00C5 / 00E5
uplow \x00C1\x00E1 16        # a with acute x00C1 / 00E1
uplow Øø 246                 # o with stroke
uplow \x00DA\x00FA 12456     # u with acute x00DA / 00FA
uplow \x00DC\x00FC 1256      # u with diaeresis x00FC
uplow \x00DD\x00FD 12346     # y with acute x00FD
uplow \x00C0\x00E0 12356     # a with grave x00C0 / 00E0
uplow \x00C2\x00E2 46-1      # a with circumflex x00C2 / 00E2
uplow Ää 345                 # A with diaeresis x00C4 / 00E4
uplow \x00C7\x00E7 12346     # c with cedilla ç x00C7 / 00E7
uplow \x00D5\x00F5 1456-135  # o with tilde x00D5 / 00F5
uplow Öö 246                 # O with diaeresis x00D6 / 00F6
uplow \x00D2\x00F2 346       # O with grave ò
uplow \x017D\x017E 2346      # z with caron
uplow \x01EA\x01EB 23456     # o with ogonek
uplow Đđ 1456                # d with stroke
uplow Ðð 156                 # Eth
uplow Ŋŋ 1246                # Eng
uplow Þþ 35-2345             # Thorn
#uplow Üü 1245                # u with diaeresis
uplow Üü 1256                # u with diaeresis
uplow Ŧŧ 1256                # t with stroke
uplow Ṥṥ 156                 # Latin Letter S with Acute and Dot Above
uplow Šš 156                 # Latin Letter S with Caron
uplow Œœ 346                 # Latin Ligature Oe

math + 235                   # plus x002B
math / 34 solidus            # x002F
math < 246-3                 # less-than sign x003C
math = 2356                  # equal sign x003D
math > 135-2                 # greater-than sign x003E
math × 3                     # multiplication sign x00D7
math ÷ 25                    # division sign x00F7
math √ 146                   # root sign

# 8.3 Fractions and mixed numbers
math ½ 3456-1-34-3456-12      # vulgar fraction 1/2 (x00BD)
math ¼ 3456-1-34-3456-145     # vulgar fraction 1/4 (x00BC)
math ¾ 3456-14-34-3456-145    # vulgar fraction 3/4 (x00BE)
math ⅓ 3456-1-34-3456-14      # vulgar fraction 1/3 (x2153)
math ⅔ 3456-12-34-3456-14     # vulgar fraction 2/3 (x2154)
math ⅒ 3456-1-34-3456-1-245   # vulgar fraction 1/10 (x2152)
math ⅕ 3456-1-34-3456-15      # vulgar fraction 1/5 (x2155)
math ⅖ 3456-12-34-3456-15     # vulgar fraction 2/5 (x2156)
math ⅗ 3456-14-34-3456-15     # vulgar fraction 3/5 (x2157)
math ⅘ 3456-145-34-3456-15    # vulgar fraction 4/5 (x2158)
math ⅙ 3456-1-34-3456-124     # vulgar fraction 1/6 (x2159)
math ⅚ 3456-15-34-3456-124    # vulgar fraction 5/6 (x215a)
math ⅐ 3456-1-34-3456-1245    # vulgar fraction 1/7 (x2150)
math ⅛ 3456-1-34-3456-125     # vulgar fraction 1/8 (x215b)
math ⅜ 3456-14-34-3456-125    # vulgar fraction 3/8 (x215c)
math ⅝ 3456-15-34-3456-125    # vulgar fraction 5/8 (x215d)
math ⅞ 3456-1245-34-3456-125  # vulgar fraction 7/8 (x215e)
math ⅑ 3456-1-34-3456-24      # vulgar fraction 1/9 (x2151)
math ↉ 3456-245-34-3456-14    # vulgar fraction 0/3 (x2189)

lowercase \x00F3 1456         # DEC 243 ó
lowercase \x00F4 4-135        # DEC 244 ô

undefined 0                   # sign used for undefined characters

# no space within mixed numbers like 1 1/2
# the swapcd rule is for compensating that the litdigit rule is not matched anymore
swapcd aslitdigit 1234567890 1,12,14,145,15,124,1245,125,24,245 # as defined in litdigits6Dots.uti
noback context [%aslitdigit$s.]$d."/"$d %aslitdigit

# arrows
sign → 25-5 # rightwards arrow x2192
sign ← 5-25 # leftwards arrow x2190

# Diacritic characters

include no-no-latinLetterDef6Dots_diacritics.uti
