// Á¦ ¸ñ: Recursive-Descent ÆÄ½ÌÀ» ÀÌ¿ëÇÑ °è»ê±â ±¸Çö
// ÀÛ¼ºÀÚ: ±è¿µ´ë( http://www.howto.pe.kr )
ÇÁ·Î±×·¥: Top-down parsing by Recursive-Descent¿Í °£´ÜÇÑ ¾î¼Àºí¸® ÀÎÅÍÇÁ¸®ÅÍ ¿¹Á¦
¼³¸í: Top down parsingÁß ÇϳªÀÎ recursive descent parsing(¼øÈ¯ ÇϰÇü ºÐ¼®)¹æ¹ýÀ»
»ç¿ëÇÑ ¼ö½Ä ±¸¹® ºÐ¼® ¿¹Á¦·Î¼ Á¤¼ö, +, -, *, /, ±×¸®°í ( ... ) ·Î ±¸¼ºµÈ ¼ö½ÄÀ»
Űº¸µå·Î Á÷Á¢ Àоîµé¿© ÆÄ½ÌÇÑ ÈÄ À̸¦ ³»ºÎ ¾î¼Àºí¸®·Î º¯È¯ÇÏ¿© Ãâ·ÂÇÑ ÈÄ °ð¹Ù·Î
ÀÎÅÍÇÁ¸®Æ®ÇÏ¿© ¼ö½ÄÀÇ °á°ú¸¦ ȸéÀ¸·Î Ãâ·ÂÇÑ´Ù
¹®¹ý:
expression = term { ( "+" | "-" ) term }
term = factor { ( "*" | "/" ) factor }
factor = number | "(" expression ")"
¾î¼Àºí¸®:
PUSH Á¤¼ö - Á¤¼ö¸¦ stack¿¡ push ÇÑ´Ù
ADD - stackÀÇ top¿¡¼ µÎ°³ÀÇ Á¤¼ö¸¦ popÇÏ¿© µ¡¼ÀÇÑ ÈÄ ´Ù½Ã push ÇÑ´Ù
SUB - stackÀÇ top¿¡¼ µÎ°³ÀÇ Á¤¼ö¸¦ popÇÏ¿© »¬¼ÀÇÑ ÈÄ ´Ù½Ã push ÇÑ´Ù
MUL - stackÀÇ top¿¡¼ µÎ°³ÀÇ Á¤¼ö¸¦ popÇÏ¿© °ö¼ÀÇÑ ÈÄ ´Ù½Ã push ÇÑ´Ù
DIV - stackÀÇ top¿¡¼ µÎ°³ÀÇ Á¤¼ö¸¦ popÇÏ¿© Á¤¼ö ³ª´°¼ÀÇÑ ÈÄ ´Ù½Ã push ÇÑ´Ù
ÄÄÆÄÀÏ:
$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
ÀÛ¼ºÀÚ:
±è¿µ´ë ( http://www.howto.pe.kr )
|
|