鳳鳴は祖父の俳号

日記 メモ そんなの

GNU-APL1.1はギリシャ文字の一部を特殊文字として受け付ける

 GNU-APLで遊んでいる。2 2 2 [IMEオン]ろー[変換][IMEオフ] 9 のようにAPLの特殊文字⍴(0x2374)でないρ(0x03C1)も受け付ける。これはソースAvec.ccの中で置き換えている。APLの特殊文字はAvec.defで定義されてある。

※APL特殊文字に対応する所がはてなダイヤリーのCソース表示中では&#なんとか;に変換されてしまうみたい。

Avec.ccより

CHT_Index
Avec::map_alternative_char(Unicode alt_av)
{
   switch(alt_av)
      {
        case 0x007E: return AV_TILDE_OPERATOR;   //  map ~ to ∼
        case 0x03B5: return AV_ELEMENT;          //  map ε to ∈
        case 0x03B9: return AV_IOTA;             //  map ι to ⍳
        case 0x03C1: return AV_RHO;              //  map ρ to ⍴
        case 0x2018: return AV_SINGLE_QUOTE;     //  map ‘ to '
        case 0x2019: return AV_SINGLE_QUOTE;     //  map ’ to '
      }

   return Invalid_CHT;
}

 この中に

        case 0x3000: return AV_ASCII_SPACE;      // map ' ' to ' '

 というのを追加してmakeすると、通常の空白以外に全角の空白も解釈してくれるようになる。

これが:
2 2 2 ρ 9

Avec::uni_to_token() : Char U+3000 ( ) not found in ⎕AV! (called from Tokenizer.cc:79)
Offending token: 0x56020011 (VOID)
SYNTAX ERROR

こんな感じに:
2 2 2 ρ 9
9 9
9 9

9 9
9 9

以下、メモ。

¡ 0x00A1 INVERTED_EXCLAM
£ 0x00A3 POUND
\ 0x00A5 YEN
¨ 0x00A8 DIAERESIS
¯ 0x00AF OVERBAR
² 0x00B2 PAD_U2
³ 0x00B3 PAD_U3
¹ 0x00B9 PAD_U1
¿ 0x00BF INVERTED_QUESTION
× 0x00D7 MULTIPLY
÷ 0x00F7 DIVIDE
μ 0x03BC mue
ѡ 0x0461 AV_MAX
⁰ 0x2070 PAD_U0
⁴ 0x2074 PAD_U4
⁵ 0x2075 PAD_U5
⁶ 0x2076 PAD_U6
⁷ 0x2077 PAD_U7
⁸ 0x2078 PAD_U8
⁹ 0x2079 PAD_U9
ⁿ 0x207F PAD_Un
₀ 0x2080 PAD_L0
₁ 0x2081 PAD_L1
₂ 0x2082 PAD_L2
₃ 0x2083 PAD_L3
₄ 0x2084 PAD_L4
₅ 0x2085 PAD_L5
₆ 0x2086 PAD_L6
₇ 0x2087 PAD_L7
₈ 0x2088 PAD_L8
₉ 0x2089 PAD_L9
€ 0x20AC EURO
← 0x2190 LEFT_ARROW
↑ 0x2191 UP_ARROW
→ 0x2192 RIGHT_ARROW
↓ 0x2193 DOWN_ARROW
⇄ 0x21C4 RIGHT_LEFT_ARROW
⇨ 0x21E8 DOUBLE_ARROW_L
∆ 0x2206 DELTA
∇ 0x2207 NABLA
∈ 0x2208 ELEMENT
∘ 0x2218 RING_OPERATOR
∣ 0x2223 DIVIDES
∧ 0x2227 AND
∨ 0x2228 OR
∩ 0x2229 INTERSECTION
∪ 0x222A UNION
∵ 0x2235 DOTTED_DEL
∼ 0x223C TILDE_OPERATOR
≠ 0x2260 NOT_EQUAL
≡ 0x2261 EQUIVALENT
≤ 0x2264 LESS_OR_EQUAL
≥ 0x2265 MORE_OR_EQUAL
≬ 0x226C BETWEEN
⊂ 0x2282 SUBSET
⊃ 0x2283 SUPERSET
⊖ 0x2296 CIRCLE_BAR
⊢ 0x22A2 RIGHT_TACK
⊣ 0x22A3 LEFT_TACK
⊤ 0x22A4 DOWN_TACK
⊥ 0x22A5 UP_TACK
⋆ 0x22C6 STAR_OPERATOR
⋸ 0x22F8 EPSILON_UBAR
⌈ 0x2308 LEFT_CEILING
⌊ 0x230A LEFT_FLOOR
⌶ 0x2336 I_BEAM
⌷ 0x2337 SQUISH_QUAD
⌸ 0x2338 QUAD_EQUAL
⌹ 0x2339 QUAD_DIVIDE
⌺ 0x233A QUAD_DIAMOND
⌼ 0x233B QUAD_JOT
⌼ 0x233C QUAD_CIRCLE
⌽ 0x233D CIRCLE_STILE
⌾ 0x233E CIRCLE_JOT
⌿ 0x233F SLASH_BAR
⍀ 0x2340 BACKSLASH_BAR
⍁ 0x2341 QUAD_SLASH
⍂ 0x2342 QUAD_BACKSLASH
⍃ 0x2343 QUAD_LESS_THAN
⍄ 0x2344 QUAD_GREATER_THAN
⍅ 0x2345 LEFT_VANE
⍆ 0x2346 RIGHT_VANE
⍇ 0x2347 QUAD_LEFT_ARROW
⍈ 0x2348 QUAD_RIGHT_ARROW
⍉ 0x2349 TRANSPOSE
⍊ 0x234A DTACK_UNDERBAR
⍋ 0x234B SORT_ASCENDING
⍌ 0x234C QUAD_DOWN_CARET
⍍ 0x234D QUAD_DELTA
⍎ 0x234E EXECUTE
⍏ 0x234F UP_VANE
⍐ 0x2350 QUAD_UP_ARROW
⍑ 0x2351 UP_TACK_OVERBAR
⍒ 0x2352 SORT_DECENDING
⍓ 0x2353 QUAD_UP_CARET
⍔ 0x2354 QUAD_DEL
⍕ 0x2355 FORMAT
⍖ 0x2356 DOWN_VANE
⍗ 0x2357 QUAD_DOWN_ARROW
⍘ 0x2358 QUOTE_UNDERBAR
⍙ 0x2359 DELTA_UNDERBAR
⍚ 0x235A DIAMOND_UNDERBAR
⍛ 0x235B JOT_UNDERBAR
⍜ 0x235C CIRCLE_UNDERBAR
⍝ 0x235D COMMENT
⍞ 0x235E QUOTE_QUAD
⍟ 0x235F LOGARITHM
⍠ 0x2360 QUAD_COLON
⍡ 0x2361 UTACK_DIAERESIS
⍢ 0x2362 DEL_DIAERESIS
⍣ 0x2363 STAR_DIAERESIS
⍤ 0x2364 JOT_DIARESIS
⍥ 0x2365 CIRCLE_DIARESIS
⍦ 0x2366 DOWN_SHOE_STILE
⍧ 0x2367 LEFT_SHOE_STILE
⍨ 0x2368 TILDE_DIAERESIS
⍩ 0x2369 GT_THAN_DIAERESIS
⍪ 0x236A COMMA_BAR
⍫ 0x236B DEL_TILDE
⍬ 0x236C ZILDE
⍭ 0x236D STILE_TILDE
⍮ 0x236E SEMICOL_UNDERBAR
⍯ 0x236F QUAD_NOT_EQUAL
⍰ 0x2370 QUAD_QUEST_MARK
⍱ 0x2371 NOR
⍲ 0x2372 NAND
⍳ 0x2373 IOTA
⍴ 0x2374 RHO
⍵ 0x2375 OMEGA
⍶ 0x2376 ALPHA_UNDERBAR
⍷ 0x2377 EPSILON_UNDERBAR
⍸ 0x2378 INDEX_UNDERBAR
⍹ 0x2379 OMEGA_UNDERBAR
⍺ 0x237A ALPHA
⎕ 0x2395 QUAD_QUAD
─ 0x2500 LINE_HORI
━ 0x2501 LINE_HORI2
│ 0x2502 LINE_VERT
┃ 0x2503 LINE_VERT2
┌ 0x250C LINE_DOWN_RIGHT
┏ 0x250F LINE_DOWN2_RIGHT2
┐ 0x2510 LINE_DOWN_LEFT
┓ 0x2513 LINE_DOWN2_LEFT2
└ 0x2514 LINE_UP_RIGHT
┗ 0x2517 LINE_UP2_RIGHT2
┘ 0x2518 LINE_UP_LEFT
┛ 0x251B LINE_UP2_LEFT2
├ 0x251C LINE_VERT_RIGHT
┤ 0x2524 LINE_VERT_LEFT
┬ 0x252C LINE_DOWN_HORI
┴ 0x2534 LINE_UP_HORI
┼ 0x253C LINE_VERT_HORI
═ 0x2550 LINE2_HORI
║ 0x2551 LINE2_VERT
╔ 0x2554 LINE2_DOWN_RIGHT
╗ 0x2557 LINE2_DOWN_LEFT
╚ 0x255A LINE2_UP_RIGHT
╝ 0x255D LINE2_UP_LEFT
╠ 0x2560 LINE2_VERT_RIGHT
╣ 0x2563 LINE2_VERT_LEFT
┃ 0x2503 LINE_VERT2
┌ 0x250C LINE_DOWN_RIGHT
┏ 0x250F LINE_DOWN2_RIGHT2
┐ 0x2510 LINE_DOWN_LEFT
┓ 0x2513 LINE_DOWN2_LEFT2
└ 0x2514 LINE_UP_RIGHT
┗ 0x2517 LINE_UP2_RIGHT2
┘ 0x2518 LINE_UP_LEFT
┛ 0x251B LINE_UP2_LEFT2
├ 0x251C LINE_VERT_RIGHT
┤ 0x2524 LINE_VERT_LEFT
┬ 0x252C LINE_DOWN_HORI
┴ 0x2534 LINE_UP_HORI
┼ 0x253C LINE_VERT_HORI
═ 0x2550 LINE2_HORI
║ 0x2551 LINE2_VERT
╔ 0x2554 LINE2_DOWN_RIGHT
╗ 0x2557 LINE2_DOWN_LEFT
╚ 0x255A LINE2_UP_RIGHT
╝ 0x255D LINE2_UP_LEFT
╠ 0x2560 LINE2_VERT_RIGHT
╣ 0x2563 LINE2_VERT_LEFT
╦ 0x2566 LINE2_HORI_DOWN
╩ 0x2569 LINE2_HORI_UP
╬ 0x256C LINE2_VERT_HORI
▀ 0x2580 UPPER_HALF_BLOCK
▄ 0x2584 LOWER_HALF_BLOCK
█ 0x2588 FULL_BLOCK
▌ 0x258C LEFT_HALF_BLOCK
▐ 0x2590 RIGHT_HALF_BLOCK
◊ 0x25CA DIAMOND
○ 0x25CB CIRCLE