Mercurial > hg > Members > nobuyasu > myCompiler
diff Bison-Flex/Compiler-StackBase/UTF8/vm.cpp @ 5:caede627f691
chage encoding
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 17 May 2011 12:45:07 +0900 |
parents | 805d39d28230 |
children |
line wrap: on
line diff
--- a/Bison-Flex/Compiler-StackBase/UTF8/vm.cpp Tue May 17 08:00:38 2011 +0900 +++ b/Bison-Flex/Compiler-StackBase/UTF8/vm.cpp Tue May 17 12:45:07 2011 +0900 @@ -1,33 +1,33 @@ // -// ²¾ÁÛCPU +// 仮想CPU // -// switch-case¤Ç¤Î¼ÂÁõÎã +// switch-caseã§ã®å®Ÿè£…例 // // (c)2008 Chihiro.SAKAMOTO HyperWorks // #include <exception> #include "vm.h" -// ¼Â¹Ô +// 実行 int vm::vcpu::run() { - command_ = data_.command_; // ¥×¥í¥°¥é¥à³ÊǼ°ÌÃÖ - text_buffer_ = data_.text_buffer_; // ¥Æ¥¥¹¥È¥Ç¡¼¥¿³ÊǼ°ÌÃÖ - command_size_ = data_.command_size_; // ¥×¥í¥°¥é¥à¤ÎÂ礤µ - text_size_ = data_.text_size_; // ¥Ç¡¼¥¿¤ÎÂ礤µ + command_ = data_.command_; // プãƒã‚°ãƒ©ãƒ æ ¼ç´ä½ç½® + text_buffer_ = data_.text_buffer_; // テã‚ã‚¹ãƒˆãƒ‡ãƒ¼ã‚¿æ ¼ç´ä½ç½® + command_size_ = data_.command_size_; // プãƒã‚°ãƒ©ãƒ ã®å¤§ãã• + text_size_ = data_.text_size_; // データã®å¤§ãã• - global_value.resize(data_.value_size_); // ³°ÉôÊÑ¿ô¥Æ¡¼¥Ö¥ë³ÎÊÝ - command_ptr_ = command_ + data_.entry_point_; // ¥×¥í¥°¥é¥à¥«¥¦¥ó¥¿¡¼½é´ü²½ + global_value.resize(data_.value_size_); // å¤–éƒ¨å¤‰æ•°ãƒ†ãƒ¼ãƒ–ãƒ«ç¢ºä¿ + command_ptr_ = command_ + data_.entry_point_; // プãƒã‚°ãƒ©ãƒ カウンターåˆæœŸåŒ– - // main¤òcall - push(0); // main¤Ø¤Î°ú¿ô¥«¥¦¥ó¥È¤òpush - push(0); // stack_base¤Î½é´üÃͤòpush - push(0); // ¥×¥í¥°¥é¥à½ªÎ»°ÌÃÖ¤òpush - stack_base = stack.size(); // ¥¹¥¿¥Ã¥¯»²¾È°ÌÃÖ½é´ü²½ + // mainã‚’call + push(0); // mainã¸ã®å¼•æ•°ã‚«ã‚¦ãƒ³ãƒˆã‚’push + push(0); // stack_baseã®åˆæœŸå€¤ã‚’push + push(0); // プãƒã‚°ãƒ©ãƒ 終了ä½ç½®ã‚’push + stack_base = stack.size(); // スタックå‚ç…§ä½ç½®åˆæœŸåŒ– try { int op; - while ((op = *command_ptr_++) != VM_HALT) { // Halt¤¹¤ë¤Þ¤Ç¥ë¡¼¥× + while ((op = *command_ptr_++) != VM_HALT) { // Haltã™ã‚‹ã¾ã§ãƒ«ãƒ¼ãƒ— switch (op) { #define VM_SWITCHTABLE #include "vm_code.h" @@ -36,8 +36,8 @@ } } catch (const std::exception &e) { - std::cerr << "Î㳰ȯÀ¸¡Ê" << e.what() << "¡Ë" << std::endl; + std::cerr << "例外発生(" << e.what() << ")" << std::endl; return -1; } - return top().i_; // main´Ø¿ôÌá¤êÃÍ + return top().i_; // main関数戻り値 }