[PR]看護師の好条件な求人情報満載:年間30,000人の転職看護師が利用中

、ス、、ス、イソ、ォス、ウ、ヲ、ネサラ、テ、ソ、ホ、ヌス、、、ネ、ュ、゙、ケ。」

チー・ユ・

、ェサミ、オ、。ヨ、ェサミ、オ、、ネ。シ。ラ

サウタキッ。ヨサウタキッ、ホ。シ。ラ

ニアサ。ヨILogScript、ロ、イ、ロ、イ、ハ、、ネ、ォケヨコツ。シ。ラ

--

サウタキッ : ノ眛フ、ホタトヌッ。」コヌカ皃マ。ヨ・・テ・チ・ッ・鬣、・「・・ネ。ラ、ネ、ォクタ、テ、ニ、。」・・テ・チ・ッ・鬣、・「・・ネ、テ、ニイソ、陦」

、ェサミ、オ、 : ・「・、ハタ゚ト熙ホ、ェサミ、オ、

--

、ェサミ、オ、。ヨサウタキッ、マILogScript、テ、ニテホ、テ、ニ、、ォ、ハ。シ。ゥ。ラ

サウタキッ。ヨテホ、熙゙、サ、。ェ。ェ。ラ

、ェサミ、オ、。ヨ、゙、「。「、ス、、筅キ、ォ、ソ、ハ、、、ォ。ト、ク、网「。「・ウ・・ム・、・鬢ス、ュ、ソ、、。「、ネサラ、テ、ソ、ウ、ネ、マ、「、、ォ、ハ。シ。ゥ。ラ

サウタキッ。ヨフオ、、、ヌ、ケ、テ。ェ。ェ。ラ

、ェサミ、オ、。ヨ、ス、、タ、ネ。「マテ、ャソハ、゙、ハ、、、ク、网ハ、、。」、ウ、ホシチフ荀マ。「[Y/y]、゚、ソ、、、ハエカ、ク、タ、ネサラ、テ、ニハヨサ、キ、ニ、陦」。ラ

サウタキッ。ヨ、ス、ウ、ヌ。「^C。ラ

、ェサミ、オ、。ヨケ、、・テ。ラ

--

、ェサミ、オ、。ヨ、ネ。「、、、ヲ、、ア、ヌ。「、ウ、、ォ、鬘「ILogScript、ホ・チ・蝪シ・ネ・・「・、テ、ン、、タ篶タ、、キ、隍ヲ、ォ、ネサラ、、、゙、ケ。」。ラ

サウタキッ。ヨ、マ、、、テ。ェ、メ、ネ、ト、、、、、ヌ、ケ、ォ。ラ

、ェサミ、オ、。ヨ、マ、、、テ。ェ、ハ、、ヌ、キ、遉ヲ。ェ。ゥシチフ荀キ、隍ヲ、ネ、ケ、、ウ、ネ、茖「ーユクォ、クタ、ェ、ヲ、ネ、ケ、サムタェ、マネセ、ヒノセイチ、ヌ、ュ、゙、ケ、陦ェ。ェ。ラ

サウタキッ。ヨ、ウ、ヲ、、、ヲノ、ヒタ篶タハク、イマテキチシー、ヒ、ケ、、ネ。「 ・ヘ・テ・ネ・。シ・ッ、ホク、ウ、ヲツヲ、ヌ"、ヲ、。シ、ウ、。「・ェ・ソ、ャス、、、ソハク、タ、陦ト・ュ・筵テ"、ネ、ォクタ、テ、ニ・メ、ュ、゙、ッ、、ネ、、、ヲ、隍ヲ、ハ 、ス、ヲ、、、ヲソヘ、ホ・、・癸シ・ク、ャ、「、熙「、熙ネノ筅ォ、、ヌ、ッ、、、ヌ、ケ、ャ。「、ス、ホキ、ヒ、ト、、、ニ、マ。「、ノ、ヲツミア、ケ、、ミ、隍、、ヌ、キ、遉ヲ、ォ・テ。ゥ。ラ

、ェサミ、オ、。ヨ、「。シ。ト、ィ。シ。ト。ラ

--

、ネ。「、゙、「。「、ス、ホキ、ヒ、ト、、、ニ、ハ、、タ、ア、ノ。「、ウ、ホフ萃熙マネセ、ヒニ、キ、、フ萃熙ヌ、「、テ、ニ。「 ホ网ィ、ミ。「・ウ・・ム・、・鬢ホ、ウ、ネ、。「・ウ・。ヲ・ム・、・鮃ッ、ネ、ォクニ、、ク、网テ、ソ、熙キ、ニ、ニ、筍「 ース、ヒフセチー、マ「、ヘ、、ホ、オ、キ、チ、网ヲ。「、゚、ソ、、、ハ。「、ス、ヲ、、、ヲ・サ・・ケ、ヘイ、ヌ、ュ、、タ、ア、ホツ遉ュ、ハエ、サ、テ、ニ、、、ハ、、、ネ ホゥヌノ、ハ・ウ・・ム・、・鬢ホタ霏ク、ヒ、マ、ハ、、ハ、、、、タ、セ。」、ネ、、、ヲ、ス、ヲ、、、ヲフ萃熙簇アサ、ヒエ゙、、ヌ、、ホ、ヌ、「、。」 ・ウ・・ム・、・鮨、ュ、ネ、、、ヲ、ホ、マ。「、ス、ヲ、、、ヲノハャ、簣ラオ皃オ、、、ホ、タ。」ツソハャ。」

todo: ・「・、ハウィ、ニ、、

--

、ネ。「、、、ヲ、ホ、マ。「、「、、゙、ヒワハク、ネ、マエリキクフオ、、、ネ、キ、ニ。「 、ウ、ホILogScript・チ・蝪シ・ネ・・「・、ヌ、マ。「・ウ・・ム・、・鬢シツコン、ヒシツチ、キ、ハ、ャ、鬘「ILogScript、ヒ、ト、、、ニタ篶タ、キ、ニ、、、ッ。」

、「、ネ。「wo、マDOS、゙、、熙ホキ、ヒ、ト、、、ニ、マ。「シツコン、ヒクォ、ソ、ウ、ネ、マフオ、、。「、ネ、、、ヲ、ホ、簗萃ュ、キ、ニ、ェ、ッ。」ーア。」

、ウ、、ハクタク、ス、ッ

、゙、コ、マ。「、ノ、ヲ、、、ヲクタク、、ト、ッ、、ォ、ケヘ、ィ、、ウ、ネ、ヒ、ケ、。」イソ、ヌ、筅、、、、、タ、ア、ノ。「 、、、ッ、ト、ォエヒワナェ、ハヘラチヌ、エ゙、皃ト、ト。「エハテア、ハエカ、ク、ヌ、、、ュ、ソ、、、隍ヘ、ァ。ト、ネ。「、、、ヲ、ウ、ネ、ヌ。「 シ。、ホ、筅ホ、エ゙、、タクタク、ヒ、ケ、

、、ヌ。「、ウ、、鬢。「C、゚、ソ、、、ハケスハク・ケ・ソ・、・、ホセ螟ヒセ隍テ、ア、、ウ、ネ、ヒ、ケ、。」 ・、・癸シ・ク、ネ、キ、ニ、マ。「、ウ、、ハエカ、ク

int x = 4;
int y = 5;
int z = x + y * 5;

、ウ、ヲ、、、ヲ、ウ、ネ、ャ、ヌ、ュ、。「、ネ。」 、「、ネ、マ。「セキハャエ、荀鬘「エリソクニ、モスミ、キ、荀鬢ニ、、ハ、、、ネ。「キラササ、キ、ソ、ネ、ウ、、ヌ キイフ、ャサネ、ィ、ハ、、、ォ、鬢ノ、ヲ、キ、隍ヲ、筅ハ、、、、タ、ア、ノ。「、ネ、熙「、ィ、コ。「、ス、、マ、゙、ソシ。イ、ネ、、、ヲ、ウ、ネ、ヌ。」。ハ、、、ト、ヒ、ハ、、ォ、、ォ、鬢、ャ。ヒ

、ヌ。「、ネ、熙「、ィ、コ。「、ウ、ホクタク、EBNF、゚、ソ、、、ハ、ホ、ヌス、、、ネ、ッ、ネ。「

program ::= (decl_stmt | expr_stmt)* 


// expr
expr_stmt == expr ';'

expr ::= plus_expr

plus_expr ::= plus_expr '+' mult_expr  |
              plus_expr '-' mult_expr 

mult_expr ::= mult_expr '*' term |
              mult_expr '/' term

term ::= digit | ident | '(' expr ')'


// decl
decl_stmt ::= 'int' ident ('=' expr)? ';'


// token 
ident ::= [_a-zA-Z][_a-zA-Z0-9]*
digit ::= [0-9]+

、ウ、、ハエカ、ク。」

・ウ・・ム・、・魘チテテホシア

。ハヘスト:、タ、鬢タ、鬢ネケスハクフレ、ホマテ、ネ、ォ。ヒ

ILog、サネ、テ、ニ・ウ。シ・ノ、ナヌ、ッ

、オ、ニ。「、ウ、テ、ォ、鬢ャヒワネヨ。」ILogScript、サネ、テ、ニ・「・サ・・ヨ・熙タクタョ、ケ、、ネ、ウ、、゙、ヌ、ホマテ、。」 、「、ネ。「GCC、ホニ篷ケスツ、、ホハルカッ、ヒ、篏ネ、ィ、。ト、ォ、筅キ、、ハ、、。」

、隍ッ、ヌ、ュ、ソハクセマ、ネー网テ、ニ。「・ワ・ネ・爭「・テ・ラハシー、ヌス、、、ニ、、、テ、ニ、、ホ、ヌ。「ニノ、゚、ヒ、ッ、、、ォ、筅キ、、ハ、、。」 ニノ、゚、ヒ、ッ、、、ネエカ、ク、ソソヘ、マ。「ーネヨコヌク螟ホハクサ、ォ、魴ユハク、ヒニノ、、ヌ、、、テ、ソ、 ・ネ・テ・ラ・タ・ヲ・ナェ、ヒニノ、皃ソ、熙キ、ニ、、、、、、ク、网ハ、、、ォ、ハ。シ。」、ネ。」。ハトカナャナ。ヒ

シコ、黌yntax tree - ケスハクフレ、ホ、ト、ッ、熙ォ、ソ

、ヌ、マ。「、゙、コ。「エハテア、ハシー、ホケスハクフレ、ホコ、熙ォ、ソ、ヒ、ト、、、ニ、ホマテ。」

、ヌ。「、ウ、ウ、ヌ、マ。「マテ、エハテア、ヒ、ケ、、ソ、皃ヒ。「・ラ・・ー・鬣爭ウ。シ・ノ、 ヌセニ筍「、ェ、隍モシ熙ヌケスハクフレ、リ、ネハムエケ、キ、ニ、゚、、ウ、ネ、ヒ、ケ、。」 ・マ・・ノ・「・サ・・ヨ・、ハ、鬢フ。「・マ・・ノ・ム。シ・ケ、ネクタ、テ、ソ、ネ、ウ、、ォ。」クマ、、ャーュ、、。」

--

、゙、コ。「エハテア、ハシー、ケヘ、ィ、。」

1 + 2

、ウ、、ハ、ホ。」トソ、ネトソ、ホイテササ。」、ウ、、ケスハクフレ、ヒ、ケ、、ネ。「

。ハヘスト:ゾス、ュトセ、ケ。ヒ

       +
      / \
     /   \
    1     2

、ウ、、ハエカ、ク。」、゙、「。「クォ、ソ、゙、、゙、ネ、、、ヲ、ォ。」

、、ヌ。「、ウ、、ホフレ、ノス、ケ・ヌ。シ・ソ、ILogScript、ヌコ、テ、ニ、゚、、ウ、ネ、ヒ、ケ、。」、ス、、ャ。「シ。、ホ・ラ・・ー・鬣爍」

// 1 + 2
var expr = gcc.build( gcc.PLUS_EXPR, types.integer_type_node, 1, 2 );

buildエリソ、ャケスハクフレ、コ、エリソ。」、ウ、、クニ、モスミ、キ、ニケスハクフレ、コ、。」

ウニーソ、ホーユフ」、マシ。、ホ、ネ、ェ、遙」

、ウ、、ハエカ、ク。」。ヨコクハユテヘ、ャ1。「アヲハユテヘ、ャ2、ホintキソ、ホPLUS_EXPR。ラ、ネ、、、ヲーユフ」。」

integer_type_node、ネ、、、ヲ、ホ、マ。「intキソ、ホ、ウ、ネ、ネサラ、テ、ニ、、、ソ、タ、、、ニ、、、、、ォ、ネ。」

、ヌ。「PLUS_EXPR、ネ、、、ヲ、ホ、マ。「イテササシー、ホ、ウ、ネ。」クコササ、ホMINUS_EXPR。「セ霆サ、ホMULT_EXPR。「 、ス、ホツセソァ。ケ、ハ、ノ、ャ、「、。」、ノ、ヲ、、、ヲ、ホ、ャ、「、、ォ、ヒ、ト、、、ニ、マ。「GCC・ス。シ・ケニ筅ホtree.defサイセネ。」

--

、゙、「。「、ネ、熙「、ィ、コ。「ケスハクフレ、マbuildエリソ、サネ、テ、ニコ、。「、ネ。」 、ヌ。「コ、テ、ソケスハクフレ、ウホヌァ、ケ、、ヒ、マ。「debug_treeエリソ、サネ、ヲ。」

var expr = gcc.build( gcc.PLUS_EXPR, types.integer_type_node, 1, 2 );
debug_tree( expr );

、ウ。シ、ケ、、ネ。「

 <plus_expr 87ef18
    type <integer_type 84aaf0 SI
        size <integer_cst 848558 constant 32>
        unit size <integer_cst 848600 constant 4>
        align 32 symtab 0 alias set -1 precision 32 min <integer_cst 8485d0 -2147483648> max <integer_cst 8485e8 2147483647>
        pointer_to_this <pointer_type 84fa10>>
    constant
    arg 0 <integer_cst 87eaf8 type <integer_type 84aaf0> constant 1>
    arg 1 <integer_cst 87eb28 type <integer_type 84aaf0> constant 2>>

テ讀「、ソ、熙ホ、エ、チ、网エ、チ、网キ、ソ、ネ、ウ、、マネエ、、、ニ、筅鬢テ、ニ。「

 <plus_expr
    constant 
    arg 0 <integer_cst constant 1>
    arg 1 <integer_cst constant 2>>

、ウ、、ハエカ、ク。」integer_cst 、ネ、、、ヲ、ホ、マ。「ターソトソ、ホ、ウ、ネ。」arg0 = 1 、ホ arg1 = 2 、ホplus_expr、テ、ニ、ハ、テ、ニ、、ホ、ウホヌァ。」、ネ。」

--

、ヌ。「ツウ、、、ニ。「

1*2 + 3*4

、ウ、ヲ、、、ヲ、ホ、ケヘ、ィ、。」

、ウ、、ホケスハクフレ、マ。「

      +
     / \
    /   \
   /     \
  *       *
 / \     / \
1   2   3   4

、ウ、、ハエカ、ク。」、ヌ。「、ウ、、チネ、゚ホゥ、ニ、・ラ・・ー・鬣爨ャ。「

// 1 * 2
var lhs = gcc.build( gcc.MULT_EXPR, types.integer_type_node, 1, 2 );

// 3 * 4
var rhs = gcc.build( gcc.MULT_EXPR, types.integer_type_node, 3, 4 );

// lhs + rhs
var expr = gcc.build( gcc.PLUS_EXPR, types.integer_type_node, lhs, rhs );

、ウ、ヲ、ハ、。」、ネ。」

--

、ヌ。「、ウ、、ハエカ、ク、ヌ。「、タ、鬢タ、鬢ネケスハクフレ、コ、テ、ニ、荀テ、ニ。「、ヌ、ュ、ソケスハクフレ、gcc、ホエリソ、ヒ 、ト、テ、ウ、、ヌ、荀、ネ。「ツミア、ケ、・「・サ・・ヨ・熙ャタクタョ、オ、、。「、ネ、、、ヲ、、ア。」

--

、「、ネ。「ヘセテフ、ネ、キ、ニ。「gcc.fold、ネ、、、ヲケスハクフレテ讀ホトソ、キラササ、キ、ニ、ッ、、エリソ、ャ、「、テ、ソ、熙ケ、。」 ホ网ィ、ミ。「セ螟ホ・ラ・・ー・鬣爨ヌ。「

var lhs = gcc.build( gcc.MULT_EXPR, types.integer_type_node, 1, 2 );
var rhs = gcc.build( gcc.MULT_EXPR, types.integer_type_node, 3, 4 );
var expr = gcc.build( gcc.PLUS_EXPR, types.integer_type_node, lhs, rhs );

debug_tree( gcc.fold(expr) );

、ウ、、ハ、ユ、ヲ、ヒ、キ、ニ、荀、ネ。「

 <integer_cst 8f18a0 type <integer_type 84aaf0> constant 14>

、ウ、、ハエカ、ク、ヒ。」

--

、゙、ネ、: シー、コ、、ヒ、マ。「buildエリソ、サネ、ヲ。」

ハムソ、スミ、ケ。」、ス、ホー

、オ、ニ。「トソ、ホキラササ、ミ、テ、ォ、熙荀テ、ニ、ニ、筵「・、ハ、ホ、ヌ。「ハムソ、マョ、テ、ニ、゚、、ウ、ネ、ヒ、ケ、。」 ハムソ、コ、、ヒ、マ。「build_decl、サネ、ヲ。」

var v = gcc.build_decl( gcc.VAR_DECL, gcc.get_identifier("var_name"), types.integer_type_node );

ーソ、マ、ス、、セ、。「

、ウ、、ヌ。「、ウ、ウ、ォ、鮗、テ、ソハムソ、サネ、ィ、、隍ヲ、ヒ、ハ、。」サネ、、ハ、マトソ、ホセケ遉ネニア、ク、隍ヲ、ヒ。「 build、サネ、テ、ニケスハクフレ、ケステロ、ケ、、ネ、ュ、ヒコョ、シ、ニ、ェ、ッ。」

int hoge ;
hoge + 4;

、ウ、ヲ、、、ヲセケ遉ケヘ、ィ、、ネ。「

// int hoge;
var hoge = gcc.build_decl( gcc.VAR_DECL, gcc.get_identifier("hoge"), types.integer_type_node );

// hoge + 4
var expr = gcc.build( gcc.PLUS_EXPR, types.integer_type_node, hoge, 4 );

debug_tree( expr );

、ウ、、ハエカ、ク、ヌ。」、「。シ。「、「、ネ。「get_identifier("str")、ネ、、、ヲ、ホ、マ。「 、ク、ト、マ。「・ミ・テ・ッ・ッ・ェ。シ・ネ、サネ、テ、ニ。「`str、ネス、ア、。」、ウ、テ、チ、ホ、ロ、ヲ、ャテサ、ッス、ア、ニクホィ、ャ、、、、、ホ、ヌ。「 、ウ、テ、チ、ホ、ロ、ヲ、ャ、ェ、ケ、ケ、癸」

、ウ、ウ、ヌ。「ハムソ、ホス魘テヘ、ネ。「、、、ュ、ソ、、、ホ、タ、ア、ノ。「・。シ・ォ・ハムソ、ネ、譯シ、ホ、マ。「 エリソ、ャフオ、、、ネサネ、ィ、ハ、、、ホ、ヌ。「、ウ、ウ、鬢リ、。「ツウ、ュ、ャス、ア、ハ、、。」

、ヌ。「、゙、「。「、ス、、ハ、ウ、、ハ、ヌ。「、チ、遉テ、ネ、荀荀ウ、キ、、、、タ、ア、ノ。「タ隍ヒエリソ、ホ、ト、ッ、熙ォ、ソ、タ篶タ、ケ、、ウ、ネ、ヒ、ケ、。」

--

、ネ、熙「、ィ、コ、゙、ネ、: ハムソ、、ト、ッ、、ヒ、マ。「build_decl、サネ、ヲ

エリソ、スミ、ケ

、「、ネ、ヌス、ッ。」

、ネ、熙「、ィ、コ。「expand_stmt、ホテ讀ヒス、、、ニ、、、ア、ミ、、、、。「、ネ、、、テ、ソエカ、ク、ヌ。」

namespace langhook
{
        function expand_stmt( stmts ) {
        	// 、ウ、ウ、ヒス、、、ニ、、、ア、ミ、、、、
        }

	function type_for_mode( mode, unsignedp ) {
		return types.integer_type_node;
	}
};

var fn_type = gcc.build_function_type( types.void_type_node, types.void_type_node );
var fn_decl = gcc.build_decl( gcc.FUNCTION_DECL, `main, fn_type );
fn_decl.result = gcc.build_decl( gcc.RESULT_DECL, null, types.void_type_node );

fn_decl.arguments = null;

fn_decl.used = true;
fn_decl.external = false;
fn_decl.static = true;
fn_decl.public = true;

fn_decl.initial = gcc.make_node( gcc.BLOCK );

gcc.tree_rest_of_compilation( fn_decl, false );

ハムソスミ、ケ

、ヌ。「マテ、・。シ・ォ・ハムソ、ヒフ皃キ、゙、キ、ニ。「、オ、ュ、ロ、ノ、ホホ网、チ、遉テ、ネハム、ィ、ニ。「

int hoge = 5;
int hoge2 = hoge + 4;

、ネ、ヌ、筅ケ、、ォ。」、ウ、、、ト、ヌセニ筵ウ・・ム・、・、ケ、、ネ。「

  1. ハムソhoge、ャ、「、
  2. ハムソhoge、ホス魘テヘ、マ5
  3. ハムソhoge2、ャ、「、
  4. ハムソhoge2、ホス魘テヘ、マhoge、ネ4、ツュ、キ、ソ、筅ホ。」

、ウ、、ハエカ、ク、ヌ、ケ、ォ、ヘ。」ハムソ、ホス魘テヘ、ホサリト熙マ。「、ス、ホハムソ、ホinitial、ネ、、、ヲ・皈・ミ、ヒニヘ、テ、ウ、、ヌ、ェ、ッ。」 ホ网ィ、ミ。「セ螟ホ・ラ・・ー・鬣爨、ト、ッ、、ホ、・ウ。シ・ノ、ヌス、ッ、ネ。「

// int hoge = 5;
var hoge = gcc.build_decl( gcc.VAR_DECL, `hoge, types.integer_type_node );
hoge.initial = 5; // 、ウ、、ャス魘テヘ

// hoge + 4
var expr = gcc.build( gcc.PLUS_EXPR, types.integer_type_node, hoge, 4 );

// int hoge2 = hoge + 4;
var hoge2 = gcc.build_decl( gcc.VAR_DECL, `hoge2, types.integer_type_node ); 
hoge2.initial = expr;

debug_tree( hoge2 );

、ウ、、ハエカ、ク。ゥ、ヌ。「ハムソ、ホタクタ、ホ・「・サ・・ヨ・熙タクタョ、ケ、、ヒ、マ。「expand_decl。「 ハムソ、ホス魘テヘ、タクタョ、ケ、、ヒ、マ。「expand_decl_init、、ス、、セ、サネ、ヲ。」

セ螟ホ・ラ・・ー・鬣爨タクタョ、ケ、・ラ・・ー・鬣爨ャ。「

// int hoge = 5;
var hoge = gcc.build_decl( gcc.VAR_DECL, `hoge, types.integer_type_node );
hoge.initial = 5;
gcc.expand_decl( hoge );    // ハムソ
gcc.expand_decl_init( hoge );

// hoge + 4
var expr = gcc.build( gcc.PLUS_EXPR, types.integer_type_node, hoge, 4 );

// int hoge2 = hoge + 4;
var hoge2 = gcc.build_decl( gcc.VAR_DECL, `hoge2, types.integer_type_node ); 
hoge2.initial = expr;
gcc.expand_decl( hoge2 );
gcc.expand_decl_init( hoge2 );


debug_tree( hoge2 );

、、ヌ。「、ウ、、、ト、。「エリソタクタョ、ホexpand_stmt、ヒニ、、ニ、荀、ネ。「

namespace langhook
{
        function expand_stmt( stmts ) {

		// int hoge = 5;
        	var hoge = gcc.build_decl( gcc.VAR_DECL, `hoge, types.integer_type_node );
                hoge.initial = 5;

                gcc.expand_decl( hoge );
                gcc.expand_decl_init( hoge );

		// hoge + 4
		var expr = gcc.build( gcc.PLUS_EXPR, types.integer_type_node, hoge, 4 );

                // int hoge2 = hoge + 4;
                var hoge2 = gcc.build_decl( gcc.VAR_DECL, `hoge2, types.integer_type_node ); 
                hoge2.initial = expr;

                gcc.expand_decl( hoge2 );
                gcc.expand_decl_init( hoge2 );
        }

	function type_for_mode( mode, unsignedp ) {
		return types.integer_type_node;
	}
};

var fn_type = gcc.build_function_type( types.void_type_node, types.void_type_node );
var fn_decl = gcc.build_decl( gcc.FUNCTION_DECL, `main, fn_type );
fn_decl.result = gcc.build_decl( gcc.RESULT_DECL, null, types.void_type_node );
gcc.current_function_decl = fn_decl;

fn_decl.arguments = null;

fn_decl.used = true;
fn_decl.external = false;
fn_decl.static = true;
fn_decl.public = true;

fn_decl.initial = gcc.make_node( gcc.BLOCK );

gcc.tree_rest_of_compilation( fn_decl, false );

、ウ、ヲ、ハ、。」、ウ、、ヌ。「・「・サ・・ヨ・熙タクタョ、ケ、コヌト羣ツ、ホ・ラ・・ー・鬣爍「、ネ、、、テ、ソ、ネ、ウ、、ォ。」、ウ、、、ト、。「hoge.ilog、ネ、ォ、ヒハンツク、キ、ニ。「

$ ilog1 -quiet --script-file=hoge.ilog

、ウ、、ハ、ユ、ヲ、ヒ、キ、ニシツケヤ、キ、ニ、荀。」

	.file	"<stdin>"
	.text
.globl _main
	.def	_main;	.scl	2;	.type	32;	.endef
_main:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	movl	$5, -4(%ebp)     # hoge = 5
	movl	-4(%ebp), %eax   # %eax = hoge
	addl	$4, %eax         # %eax += 4
	movl	%eax, -8(%ebp)   # hoge2 = %eax
	leave
	ret

、マ、、。「、ウ、ウ、マエカニー、ケ、、ネ、ウ、、ヌ、ケ、陦」、ネ。「、、、テ、ニ、筍「、ス、ウ、鬢リ、、マヒヘ、ヒ、キ、ォ、、ォ、鬢、タ、、ヲ、ア、ノ。」

、゙、「。「、ス、、マ、、、、、ォ。」、ネ、熙「、ィ、コ。「・ウ。シ・ノタクタョ、マ、ウ、、ハエカ、ク、ヒ、ハ、、、ヌ、ケ、陦「、ネ。」

--

、゙、ネ、: ・。シ・ォ・ハムソ、スミ、ケ、ヒ、マ。「expand_decl。」 ハムソ、ホス魘テヘ、スミ、ケ、ヒ、マ。「expand_decl_init。」 ハムソ、ホス魘テヘ、マ。「、ス、ホハムソ、ホinitial、ヒシー、タ゚ト熙ケ、。」

ILog、サネ、テ、ニ・ラ・・ー・鬣爨・ム。シ・ケ、ケ、

、オ、ニ。「ヌセニ筅ヌ・ム。シ・ケ、キ、ソ、ホ、シニー、ヌケスハクフレ、ヒハムエケ、ケ、。「、ネ、、、ヲ、ホ、筅ハ、ォ、ハ、ォ、隍、、ォ、ネサラ、ヲ、、タ、ア、ノ。「 、ウ、、ヌ、マ、「、、゙、・ウ・・ム・、・鬢テ、ン、ッ、ハ、、、ホ、ヌ。「 ニホマ・ラ・・ー・鬣爨ケスハクフレ、ヒハムエケ、ケ、、隍ヲ、ハエカ、ク、ヒ、キ、゙、ケ、ォ、ヘ。」、ネ、、、ヲ、隍ヲ、ハマテ。」

サカ邊タマ

、゙、コ、マ。「、ウ、ウ、ォ、鬘」ニホマハクサホ、・ネ。シ・ッ・、ヒハャイ、ケ、、ネ、、、ヲ、ネ、ウ、。」

コ」イサネ、ヲ・ネ。シ・ッ・、マ。「

[_a-zA-Z][_a-zA-Z0-9]* 「ェ シアハフサメ
[0-9]+  「ェ ソ
; 「ェ ・サ・゚・ウ・・
int 「ェ 'int' ・ュ。シ・。シ・ノ
+ - * / 「ェ ア鮟ササメ

、ウ、、ハ、ネ、ウ、、ォ。」、ウ、、ャイタマ、ヌ、ュ、、ミフ萃フオ、、、ォ、ネ。」

ILogScript、ヌ、マ。「サカ邊タマ、マ。「タオオャノスクス、ホ・・ケ・ネ、サネ、テ、ニ、ー、ヒ、遉テ、ネエハテア、ヒ、ヌ、ュ、、隍ヲ、ヒ、ハ、テ、ニ、、ホ、ヌ。「 、ス、、サネ、ヲ、ウ、ネ、ヒ、ケ、。」

、゙、コ、マ。「'4+5'、ネ、、、ヲハクサホ、イタマ、ケ、、ホ、ケヘ、ィ、。」 ・ネ。シ・ッ・、。「。ヨ(シホ,ハクサホ)。ラ、ネ、、、ヲノスクス、ヌ、「、鬢、ケ、ネ、ケ、、ネ。「、ウ、、、ト、イタマ、キ、ソキイフ、マ。「

(ターソ,'4')  (・ラ・鬣ケ、ホア鮟ササメ,'+')  (ターソ,'5')

、ネ、、、ヲサー、ト、ホヘラチヌ、ホ・・ケ・ネ、ヒ、ハ、、ミ、、、、、タ、、ヲ。」

、ウ、、イタマ、ケ、・ケ・ッ・・ラ・ネ、マ、ウ、、ハエカ、ク

var input = stream.string_to_rstream("4+5");   // ニホマ・ヌ。シ・ソ

var lex_table = [
	["[0-9]+":`TOK_DIGIT],
        ["\\+":`TOK_PLUS],
        [null:`TOK_EOF]    // コヌク螟゙、ヌ、ュ、ソ、 `TOK_EOF、ハヨ、ケ
];

var lexer = Lex.generate_analyzer( lex_table );

while ( true ) {
	var tok = lexer.next_token( input );

        if ( tok.value == `TOK_EOF ) {
        	break;
        }

	print( "(" );
        print( tok.value );
        print( "," );
        print( tok.chain[0] );
        puts( ")" );
}

todo: 、ウ、、ノス、ッ。」タ篶タ、ャ、ウ、ウ、鬢リ、、ヒ。」


[PR]中古車探しは、ガリバー:在庫多数、全車保証つき!