stat grammar Expr g prog stat stat expr
- Slides: 39
文法の作成(3):stat要素定義 grammar Expr. g ; prog: stat+ ; stat: expr NEWLINE | ID '=' expr NEWLINE | NEWLINE ; 東京 科大学コンピュータサイエンス学部 10
設計した文法の概要(Expr. g) grammar Expr; prog: stat+ ; stat: expr NEWLINE | ID '=‘ expr NEWLINE | NEWLINE ; expr: mult. Expr ( '+' mult. Expr | '-' mult. Expr )*; mult. Expr: atom ( '*‘ atom )* ; atom: INT | ID | '(' expr ')' ; ID : ('a'. . 'z'|'A'. . 'Z')+ ; INT : '0'. . '9'+ ; NEWLINE: 'r'? 'n' ; 説明できますか? WS : (' '|'t')+ {skip(); } ; 東京 科大学コンピュータサイエンス学部 19
文法の動作部分の説明 grammar Expr; @header { 変数名とその値を保存する表 import java. util. Hash. Map; } @members { /** Map variable name to Integer object holding value */ Hash. Map memory = new Hash. Map(); } 東京 科大学コンピュータサイエンス学部 23
grammar Expr; prog: stat+ ; stat: expr NEWLINE { System. out. println($expr. value); } | ID '=' expr NEWLINE { memory. put( $ID. text, new Integer($expr. value) ); } | NEWLINE ; expr returns [int value] : e=mult. Expr {$value = $e. value; } ( '+' e=mult. Expr {$value += $e. value; } | '-' e=mult. Expr {$value -= $e. value; } )* ; 東京 科大学コンピュータサイエンス学部 24
grammar Expr; (省略) mult. Expr returns [int value] : e=atom {$value = $e. value; } (‘*’ e=atom {$value *= $e. value; } )* ; atom returns [int value] : INT {$value = Integer. parse. Int($INT. text); } | ID { Integer v = (Integer)memory. get($ID. text); if ( v!=null ) $value = v. int. Value(); else System. err. println("undefined variable "+$ID. text); } | '(' expr ')' {$value = $expr. value; } ; 東京 科大学コンピュータサイエンス学部 25
まずは、開発・実行環境の整備 1. ANTLR v 4 をダウンロードする。 • 対象: Antlr-4. 1 -complete. jar • 設置先: • Linuxの場合: /usr/local/bin • Windowsの場合: c: Javalib 2. CLASSPATH を設定する。 • Linuxの場合: export CLASSPATH=“. : /usr/local/bin/antlr-4. 1 -complete. jar: $CLASSPATH” • Windowsの場合: SET CLASSPATH=. ; c: Javalibantlr-4. 1 -complete. jar; %CLASSPATH% 3. (任意) alias の設定をする。 • alias antlr 4=‘java –jar /usr/local/bin/antlr-4. 1 -complete. jar’ • alias grun=‘java org. antlr. v 4. runtime. misc. Test. Rig’ 東京 科大学コンピュータサイエンス学部 31
- Expr stock discussion
- Skala podatkowa 2020
- Schemat bep
- Sigwx chart symbols
- Prog 1
- Prog def
- Progressive rock album
- Próg rentowności dla produkcji wieloasortymentowej
- Closure properties of regular languages
- Convert right linear grammar to left
- What are the characteristics of traditional grammar
- Chomsky hierarchy of grammars
- Qualcomm spaces developer apis unreal unityverge
- Stat gov lt
- Sys stat h
- Stat cr
- Stat key
- Stat 425
- Stat 134
- My stat lab
- Analizează hărțile în care sunt reprezentate relieful
- Ekit medication cart
- Najľudnatejší štát severnej afriky
- Stat
- Lepm
- Ap stat phantoms
- Conditional expected value
- Stat grundad 1948
- Stat 701
- Stat 101
- Izodens
- Stat mech
- štát
- Stat 280
- Unit root time series
- Vety na priamu reč
- Conventia de la viena 1961
- Stat to gaap reconciliation
- Berkeley stat 134
- Kadinin stat?s?