nadesiko3
Version:
Japanese Programming Language
143 lines (134 loc) • 3.22 kB
text/typescript
import { FuncListItem, Ast } from './nako_types.mjs'
export type TokenType = '?'
| 'eol'
| '_eol'
| 'eof'
| 'dec_lineno'
| 'require'
| 'line_comment' | 'range_comment'
| 'とは' // ?
| 'string'
| 'string_ex' // nako_lexerの中で展開されるため、nako_parser3には現れない
| 'number'
| 'word'
| 'ならば'
| '増繰返' | '減繰返'
| '違えば'
| '定数'
| 'ここまで' | 'ここから'
| 'comma'
| 'func'
| 'func_pointer'
| 'not'
| 'code' // string_exで文字列の展開に使う
| 'space'
| 'def_test'
| 'def_func'
| 'bigint'
| '&'
| '('
| ')'
| 'eq'
| 'noteq'
| 'gt'
| 'gteq'
| 'lt'
| 'lteq'
| '==='
| '!=='
| '←'
| 'and'
| 'or'
| '@'
| '+'
| '-'
| '*'
| '**'
| '÷'
| '÷÷'
| '^'
| '%'
| '['
| ']'
| '{'
| '}'
| '|'
| 'shift_r0'
| 'shift_r'
| 'shift_l'
| ':'
| '…'
| 'もし'
| '回' // 回
// 回繰返 // (#924)
| '間' // 間
// 間繰返 // (#927)
| '繰返' // 繰返
// 増繰返 // (#1140)
// 減繰返
| '後判定' // 後判定 // (#1147)
| '反復' // 反復
| '抜ける' // 抜
| '続ける' // 続
| '戻る' // 戻
| '先に' // 先
| '次に' // 次
| '代入' // 代入
| '実行速度優先' // 実行速度優先
| 'パフォーマンスモニタ適用' // パフォーマンスモニタ適用 // (#986)
| '定める' // 定
| '逐次実行' // 逐次実行 // 廃止 #1611 ただし念のため残しておく
| '条件分岐' // 条件分岐
| '増' // 増
| '減' // 減
| '変数' // 変数
// 定数
| 'エラー監視' // エラー監視 // 例外処理:エラーならばと対
| 'エラー' // エラー
// それ
// そう // 「それ」のエイリアス
// 関数 // 無名関数の定義用
| 'インデント構文' // インデント構文 // https://nadesi.com/v3/doc/go.php?949
| '非同期モード' // 非同期モード // (#637)
| 'DNCLモード' // DNCLモード // (#1140)
| 'DNCL2モード'
| 'モード設定' // モード設定 // (#1020)
| '取込' // 取込
| 'モジュール公開既定値' // モジュール公開既定値
| '厳チェック' // 厳しくチェック (#1698)
| '」' // error - エラーチェックのため
| '』' // error - エラーチェックのため
| '??' // 「表示」のエイリアス
| '$' // プロパティアクセス
// トークン
export interface Token {
type: TokenType;
value: any;
line: number;
column: number;
file: string;
josi: string;
indent: number;
rawJosi?: string;
startOffset?: number | undefined;
endOffset?: number | undefined;
isDefinition?: boolean;
funcPointer?: boolean;
tag?: string;
preprocessedCodeOffset?: number | undefined;
preprocessedCodeLength?: number | undefined;
name?: Token | Ast; // NakoPaserBase.nodeToStrの問題を回避するため
start?: number;
end?: number;
firstToken?: Token;
lastToken?: Token;
}
export interface TokenStrValue {
value: string;
}
export interface TokenDefFunc extends Token {
meta: FuncListItem;
}
export interface TokenCallFunc extends Token {
meta: FuncListItem;
}