4h: Parsing (ASCII Glyphs)

    ++ace

    Parse space

    Parses ASCII character 32, space.

    Source

        ++  ace  (just ' ')
    

    Examples

        > (scan " " ace)
        ~~.
    
        > `cord`
        (scan " " ace)
        ' '
    
        > (ace [[1 1] " "])
        [p=[p=1 q=2] q=[~ [p=~~. q=[p=[p=1 q=2] q=""]]]]
    
        > (ace [[1 1] " abc "])
        [p=[p=1 q=2] q=[~ [p=~~. q=[p=[p=1 q=2] q="abc "]]]]
    

    ++bar

    Parse vertical bar

    Parses ASCII character 124, the vertical bar.

    Source

        ++  bar  (just '|')
    

    Examples

        > (scan "|" bar)
        ~~~7c.
    
        > `cord`(scan "|" bar)
        '|'
    
        > (bar [[1 1] "|"])
        [p=[p=1 q=2] q=[~ [p=~~~7c. q=[p=[p=1 q=2] q=""]]]]
    
        > (bar [[1 1] "|="])
        [p=[p=1 q=2] q=[~ [p=~~~7c. q=[p=[p=1 q=2] q="="]]]]
    

    ++bas

    Parse backslash

    Parses ASCII character 92, the backslash. Note the extra in the calling of bas with ++just is to escape the escape character, .

    Source

        ++  bas  (just '\\')
    

    Examples

        > (scan "\\" bas)
        ~~~5c.
    
        > `cord`(scan "\\" bas)
        '\'
    
        > (bas [[1 1] "\"])
        ~ <syntax error at [1 18]>
    
        > (bas [[1 1] "\\"])
        [p=[p=1 q=2] q=[~ [p=~~~5c. q=[p=[p=1 q=2] q=""]]]]
    
        > (bas [[1 1] "\""])
        [p=[p=1 q=1] q=~]
    

    ++buc

    Parse dollar sign

    Parses ASCII character 36, the dollar sign.

    Source

        ++  buc  (just '$')
    

    Examples

        > (scan "$" buc)
        ~~~24.
    
        > `cord`(scan "$" buc)
        '$'
    
        > (buc [[1 1] "$"])
        [p=[p=1 q=2] q=[~ [p=~~~24. q=[p=[p=1 q=2] q=""]]]]
    
        > (buc [[1 1] "$%"])
        [p=[p=1 q=2] q=[~ [p=~~~24. q=[p=[p=1 q=2] q="%"]]]]
    

    ++cab

    Parse underscore

    Parses ASCII character 95, the underscore.

    Source

        ++  cab  (just '_')
    

    Examples

        > (scan "_" cab)
        ~~~5f.
    
        > `cord`(scan "_" cab)
        '_'
    
        > (cab [[1 1] "_"])
        [p=[p=1 q=2] q=[~ [p=~~~5f. q=[p=[p=1 q=2] q=""]]]]
    
        > (cab [[1 1] "|_"])
        [p=[p=1 q=1] q=~]
    

    ++cen

    Parses percent sign

    Parses ASCII character 37, the percent sign.

    Source

        ++  cen  (just '%')
    

    Examples

        > (scan "%" cen)
        ~~~25.
    
        > `cord`(scan "%" cen)
        '%'
    
        > (cen [[1 1] "%"])
        [p=[p=1 q=2] q=[~ [p=~~~25. q=[p=[p=1 q=2] q=""]]]]
    
        > (cen [[1 1] "%^"])
        [p=[p=1 q=2] q=[~ [p=~~~25. q=[p=[p=1 q=2] q="^"]]]]
    

    ++col

    Parse colon

    Parses ASCII character 58, the colon

    Source

        ++  col  (just ':')
    

    Examples

        > (scan ":" col)
        ~~~3a.
    
        > `cord`(scan ":" col)
        ':'
    
        > (col [[1 1] ":"])
        [p=[p=1 q=2] q=[~ [p=~~~3a. q=[p=[p=1 q=2] q=""]]]]
    
        > (col [[1 1] ":-"])
        [p=[p=1 q=2] q=[~ [p=~~~3a. q=[p=[p=1 q=2] q="-"]]]]
    

    ++com

    Parse comma

    Parses ASCII character 44, the comma.

    Source

        ++  com  (just ',')
    

    Examples

        > (scan "," com)
        ~~~2c.
    
        > `cord`(scan "," com)
        ','
    
        > (com [[1 1] ","])
        [p=[p=1 q=2] q=[~ [p=~~~2c. q=[p=[p=1 q=2] q=""]]]]
    
        > (com [[1 1] "not com"])
        [p=[p=1 q=1] q=~]
    

    ++doq

    Parse double quote

    Parses ASCII character 34, the double quote.

    Source

        ++  doq  (just '"')
    

    Examples

        > (scan "\"" doq)
        ~~~22.
    
        > `cord`(scan "\"" doq)
        '"'
    
        > (doq [[1 1] "\""])
        [p=[p=1 q=2] q=[~ [p=~~~22. q=[p=[p=1 q=2] q=""]]]]
    
        > (doq [[1 1] "not successfully parsed"])
        [p=[p=1 q=1] q=~]
    
        > (scan "see?" doq)
        ! {1 1}
        ! 'syntax-error'
        ! exit
    

    ++dot

    Parse period

    Parses ASCII character 46, the period.

    Source

        ++  dot  (just '.')
    

    Examples

        > (scan "." dot)
        ~~~.
    
        > `cord`(scan "." dot)
        '.'
    
        > (dot [[1 1] "."])
        [p=[p=1 q=2] q=[~ [p=~~~. q=[p=[p=1 q=2] q=""]]]]
    
        > (dot [[1 1] ".^"])
        [p=[p=1 q=2] q=[~ [p=~~~. q=[p=[p=1 q=2] q="^"]]]]
    

    ++fas

    Parse forward slash

    Parses ASCII character 47, the forward slash.

    Source

        ++  fas  (just '/')
    

    Examples

        > (scan "/" fas)
        '/'
    
        > (fas [[1 1] "/"])
        [p=[p=1 q=2] q=[~ [p=~~~2f. q=[p=[p=1 q=2] q=""]]]]
    
        > (fas [[1 1] "|/"])
        [p=[p=1 q=1] q=~]
    

    ++gal

    Parse less-than sign

    Parses ASCII character 60, the less-than sign.

    Source

        ++  gal  (just '<')
    

    Examples

        > (scan "<" gal)
        '<'
    
        > (gal [[1 1] "<"])
        [p=[p=1 q=2] q=[~ [p=~~~3c. q=[p=[p=1 q=2] q=""]]]]
    
        > (gal [[1 1] "<+"])
        [p=[p=1 q=2] q=[~ [p=~~~3c. q=[p=[p=1 q=2] q="+"]]]]
    
        > (gal [[1 1] "+<"])
        [p=[p=1 q=1] q=~]
    

    ++gar

    Parse greater-than sign

    Parses ASCII character 62, the greater-than sign.

    Source

        ++  gar  (just '>')
    

    Examples

        > (scan ">" gar)
        ~~~3e.
    
        > `cord`(scan ">" gar)
        '>'
    
        > (gar [[1 1] ">"])
        [p=[p=1 q=2] q=[~ [p=~~~3e. q=[p=[p=1 q=2] q=""]]]]
    
        > (gar [[1 1] "=>"])
        [p=[p=1 q=1] q=~]
    

    ++hax

    Parse number sign

    Parses ASCII character 35, the number sign.

    Source

        ++  hax  (just '#')
    

    Examples

        > (scan "#" hax)
        '#'
    
        > (hax [[1 1] "#"])
        [p=[p=1 q=2] q=[~ [p=~~~23. q=[p=[p=1 q=2] q=""]]]]
    
        > (hax [[1 1] "#!"])
        [p=[p=1 q=2] q=[~ [p=~~~23. q=[p=[p=1 q=2] q="!"]]]]
    

    ++hep

    Parse hyphen

    Parses ASCII character 45, the hyphen.

    Source

        ++  hep  (just '-')
    

    Examples

        > (scan "-" hep)
        '-'
    
        > (hep [[1 1] "-"])
        [p=[p=1 q=2] q=[~ [p=~~- q=[p=[p=1 q=2] q=""]]]]
    
        > (hep [[1 1] ":-"])
        [p=[p=1 q=1] q=~]
    

    ++kel

    Parse left curley bracket

    Parses ASCII character 123, the left curly bracket. Note that { (kel) and } (ker) open and close a Hoon expression for Hoon string interpolation. To parse either of them, they must be escaped.

    Source

        ++  kel  (just '{')
    

    Examples

        > (scan "\{" kel)
        '{'
    
        > (kel [[1 1] "\{"])
        [p=[p=1 q=2] q=[~ [p=~~~7b. q=[p=[p=1 q=2] q=""]]]]
    
        > (kel [[1 1] " \{"])
        [p=[p=1 q=1] q=~]
    

    ++ker

    Parse right curley bracket

    Parses ASCII character 125, the right curly bracket. Note that { (kel) and } (ker) open and close a Hoon expression for Hoon string interpolation. To parse either of them, they must be escaped.

    Source

        ++  ker  (just '}')
    

    Examples

        > (scan "}" ker)
        '}'
    
        > (ker [[1 1] "}"])
        [p=[p=1 q=2] q=[~ [p=~~~7d. q=[p=[p=1 q=2] q=""]]]]
    
        > (ker [[1 1] "\{}"])
        [p=[p=1 q=1] q=~]
    

    ++ket

    Parse caret

    Parses ASCII character 94, the caret.

    Source

        ++  ket  (just '^')
    

    Examples

        > (scan "^" ket)
        '^'
    
        > (ket [[1 1] "^"])
        [p=[p=1 q=2] q=[~ [p=~~~5e. q=[p=[p=1 q=2] q=""]]]]
    
        > (ket [[1 1] ".^"])
        [p=[p=1 q=1] q=~]
    

    ++lus

    Parse plus sign

    Parses ASCII character 43, the plus sign.

    Source

        ++  lus  (just '+')
    

    Examples

            > (scan "+" lus)
            ~~~2b.
    
            > `cord`(scan "+" lus)
            '+'
    
            > (lus [[1 1] "+"])
            [p=[p=1 q=2] q=[~ [p=~~~2b. q=[p=[p=1 q=2] q=""]]]]
    
            > (lus [[1 1] ".+"])
            [p=[p=1 q=1] q=~]
    

    ++pam

    Parse ampersand

    Parses ASCII character 38, the ampersand.

    Source

        ++  pam  (just '&')
    

    Examples

        > (scan "&" pam)
        ~~~26.
    
        > `cord`(scan "&" pam)
        '&'
    
        > (pam [[1 1] "&"])
        [p=[p=1 q=2] q=[~ [p=~~~26. q=[p=[p=1 q=2] q=""]]]]
    
        > (pam [[1 1] "?&"])
        [p=[p=1 q=1] q=~]
    

    ++pat

    Parse "at" sign

    Parses ASCII character 64, the "at" sign.

    Source

        ++  pat  (just '@')
    

    Examples

        > (scan "@" pat)
        ~~~4.
    
        > `cord`(scan "@" pat)
        '@'
    
        > (pat [[1 1] "@"])
        [p=[p=1 q=2] q=[~ [p=~~~4. q=[p=[p=1 q=2] q=""]]]]
    
        > (pat [[1 1] "?@"])
        [p=[p=1 q=1] q=~]
    

    ++pel

    Parse left parenthesis

    Parses ASCII character 40, the left parenthesis.

    Source

        ++  pel  (just '(')
    

    Examples

        > (scan "(" pel)
        '('
    
        > (pel [[1 1] "("])
        [p=[p=1 q=2] q=[~ [p=~~~28. q=[p=[p=1 q=2] q=""]]]]
    
        > (pel [[1 1] ";("])
        [p=[p=1 q=1] q=~]
    

    ++per

    Parse right parenthesis

    Parses ASCII character 41, the right parenthesis.

    Source

        ++  per  (just ')')
    

    Examples

        > (scan ")" per)
        ')'
    
        > (per [[1 1] ")"])
        [p=[p=1 q=2] q=[~ [p=~~~29. q=[p=[p=1 q=2] q=""]]]]
    
        > (per [[1 1] " )"])
        [p=[p=1 q=1] q=~]
    

    ++sel

    Parse left square bracket

    Parses ASCII character 91, the left square bracket.

    Source

        ++  sel  (just '[')
    

    Examples

            > (scan "[" sel)
            '['
    
            > (sel [[1 1] "["])
            [p=[p=1 q=2] q=[~ [p=~~~5b. q=[p=[p=1 q=2] q=""]]]]
    
            > (sel [[1 1] "-["])
            [p=[p=1 q=1] q=~]
    

    ++sem

    Parse semicolon

    Parses ASCII character 59, the semicolon.

    Source

        ++  sem  (just ';')
    

    Examples

        > (scan ";" sem)
        ';'
    
        > (sem [[1 1] ";"])
        [p=[p=1 q=2] q=[~ [p=~~~3b. q=[p=[p=1 q=2] q=""]]]]
    
        > (sem [[1 1] " ;"])
        [p=[p=1 q=1] q=~]
    

    ++ser

    Parse right square bracket

    Parses ASCII character 93, the right square bracket.

    Source

        ++  ser  (just ']')
    

    Examples

        > (scan "]" ser)
        ']'
    
        > (ser [[1 1] "]"])
        [p=[p=1 q=2] q=[~ [p=~~~5d. q=[p=[p=1 q=2] q=""]]]]
    
        > (ser [[1 1] "[ ]"])
        [p=[p=1 q=1] q=~]
    

    ++sig

    Parse tilde

    Parses ASCII character 126, the tilde.

    Source

        ++  sig  (just '~')
    

    Examples

        > (scan "~" sig)
        '~'
    
        > (sig [[1 1] "~"])
        [p=[p=1 q=2] q=[~ [p=~~~~ q=[p=[p=1 q=2] q=""]]]]
    
        > (sig [[1 1] "?~"])
        [p=[p=1 q=1] q=~]
    

    ++soq

    Parse single quote

    Parses ASCII character 39, soq. Note the extra '' is to escape the first soq because soq delimits a ++cord.

    Source

        ++  soq  (just '\'')
    

    Examples

        > (scan "'" soq)
        '\''
    
        > (soq [[1 1] "'"])
        [p=[p=1 q=2] q=[~ [p=~~~27. q=[p=[p=1 q=2] q=""]]]]
    
        > (soq [[1 1] ">'"])
        [p=[p=1 q=1] q=~]
    

    ++tar

    Parse asterisk

    Parses ASCII character 42, the asterisk.

    Source

        ++  tar  (just '*')
    

    Examples

        > (scan "*" tar)
        ~~~2a.
    
        > `cord`(scan "*" tar)
        '*'
    
        > (tar [[1 1] "*"])
        [p=[p=1 q=2] q=[~ [p=~~~2a. q=[p=[p=1 q=2] q=""]]]]
    
        > (tar [[1 1] ".*"])
        [p=[p=1 q=1] q=~]
    

    ++tec

    Parse backtick

    Parses ASCII character 96, the backtick (also known as the "grave accent").

    Source

        ++  tec  (just '`')                                     ::  backTiCk
    

    Examples

        > (scan "`" tec)
        ~~~6.
    
        > `cord`(scan "`" tec)
        '`'
    
        > (tec [[1 1] "`"])
        [p=[p=1 q=2] q=[~ [p=~~~6. q=[p=[p=1 q=2] q=""]]]]
    
        > (tec [[1 1] " `"])
        [p=[p=1 q=1] q=~]
    

    ++tis

    Parse equals sign

    Parses ASCII character 61, the equals sign.

    Source

        ++  tis  (just '=')
    

    Examples

        > (scan "=" tis)
        '='
    
        > (tis [[1 1] "="])
        [p=[p=1 q=2] q=[~ [p=~~~3d. q=[p=[p=1 q=2] q=""]]]]
    
        > (tis [[1 1] "|="])
        [p=[p=1 q=1] q=~]
    

    ++wut

    Parses question mark

    Parses ASCII character 63, the question mark.

    Source

        ++  wut  (just '?')
    

    Examples

        > (scan "?" wut)
        '?'
    
        > (wut [[1 1] "?"])
        [p=[p=1 q=2] q=[~ [p=~~~3f. q=[p=[p=1 q=2] q=""]]]]
    
        > (wut [[1 1] ".?"])
        [p=[p=1 q=1] q=~]
    

    ++zap

    Exclamation point

    Parses ASCII character 33, the exclamation point zap.

    Source

        ++  zap  (just '!')
    

    Examples

            > (scan "!" zap)
            '!'
    
            > (zap [[1 1] "!"])
            [p=[p=1 q=2] q=[~ [p=~~~21. q=[p=[p=1 q=2] q=""]]]]
    
            > (zap [[1 1] "?!"])
            [p=[p=1 q=1] q=~]