MyHLは、haribote HL-8cを改造したバージョンです。
MyHL エスケープシーケンスの処理を追加
文字列リテラルでエスケープシーケンスを使えるようにするために、getTokenCode()
の「手抜き実装(エスケープシーケンスを処理していない)」というコメントをつけていた箇所を変更しました。
char *str = malloc(len - 1); if (str == NULL) { printf("Failed to allocate memory\n"); exit(1); } vars[i] = (intptr_t) str; int j = 0; for (int k = 1; tokenStrs[i][k] != tokenStrs[i][0]; ++j, ++k) { if (tokenStrs[i][k] == '\\') { // エスケープシーケンス switch (tokenStrs[i][k + 1]) { case 'f': str[j] = 12; break; // FF case 'n': str[j] = 10; break; // LF case 'r': str[j] = 13; break; // CR case 't': str[j] = 9; break; // HT case 'v': str[j] = 11; break; // VT } ++k; continue; } str[j] = tokenStrs[i][k]; } str[j] = 0;
とりあえず、\f
(フォームフィード)、\n
(改行)、\r
(キャリッジリターン)、\t
(タブ)、\v
(垂直タブ)を実装しています。