2026.3.31 トークナイザー修正 2026.3.30 公開 これより極秘 現在のブロック数-2497ブロック(4/11) 開発を始めて 12日(4/11) ・標準関数の機能・名称→JavaScript,Pythonより ・変数・配列の機能→JavaScriptより(参照、型付け) ・制御構文→JavaScript,Javaより ・データ型→JavaScriptより
どうせなら言語を作ってより既存の言語への理解を深めようっていう試みだから回りくどかったりミスってたり 現在: 名称予定:Proto. Protoは初期、原型というニュアンスの接頭詞 字句解析:50% -トークナイザー:80% -親子関係:0% 前作ったやつを新しく構築中 構文解析: -AST構築:80%(ばぐがあるかもでわからない) -実行:50% 字句解析と構文解析は完全分離型 現在実行時のASTの型はope,value型のみ ・目指す言語仕様 変数宣言は動的、let・constキーワード データ型は内部では number bool string 0 function 制御構文は while if -else if -else switch for do-while 配列・オブジェクト・クラス・関数はできそうなら追加 影響:JavaScript,Java,Python ある程度適当に作っている>>内部構造 トークナイザー ・強制的にTokenを終わらせる文字群({}; )ならTokenをリストに追加し空にする ・半角スペースでない場合、その文字の型を判別する(0123456789.に含まれるならnum型、ope-typesリストに含まれるならope型、"'`に含まれるならquote型、それに囲まれたものをstr型、それ以外をvar型とする)。そして、型が変わったならTokenを強制的にリストに追加し、空にする。ただ、x1などという変数もxと1に分けられてしまうので、var型→num型への移行は許可する ・構文解析&実行 ASTを _VALUE _TYPE child> _CHILDLIST <child という形で構築し、上から分離した後に(無駄な犠牲)、子要素を更に計算して、…という形の再帰で演算を行う。