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=~]