flex (lex) : The Fast Lexical Analyzer
flex๋ ์ค์บ๋(๋๋๋ก Tokenizer๋ผ๊ณ ๋ถ๋ฆฝ๋๋ค)๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๋๊ตฌ์
๋๋ค.
์ง์ ๋ ๊ท๊ฒฉ์ ๋ง์ถ์ด lexํ์ผ์ ๋ง๋ค๊ณ , ์ด๋ฅผ flex๋ฅผ ํตํด ๋ณํํ๋ฉด lex.yy.cํ์ผ์ ์์ฑํด ๋
๋๋ค.
์ด ํ์ผ์ ๋ค์ gcc๋ ms vc์ปดํ์ผ๋ฌ๋ฑ์ ํตํด ์ปดํ์ผ ํ ์ ์์ต๋๋ค.
์ ๋ ฅ ํ์ผ์ ๋ค์์ ํํ๋ฅผ ๋ฐ๋ฆ ๋๋ค.
definitions
%%
rules
%%
user code
์์ธํ ํํ๋ http://flex.sourceforge.net/manual/Format.html#Format ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
ํจํด์ Regular Expression(์ ๊ทํํ์)์ ๊ธฐ๋ฐํฉ๋๋ค.
http://flex.sourceforge.net/manual/Patterns.html#Patterns
์ฃผ์, ์ค์, ์ด๋ฉ์ผ์ฃผ์๋ฑ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ ๊ทํํ์์
http://www.regular-expressions.info/examples.html ์์ ํ์ธํ ์ ์์ต๋๋ค.
์์ ์ฝ๋๋
http://flex.sourceforge.net/manual/Simple-Examples.html#Simple-Examples ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
VC์ ์ฐ๊ณํด์ ์ฌ์ฉํ์๋ ค๋ฉด ์ปดํจํฐ์ path ํ๊ฒฝ๋ณ์์ flex๊ฐ ์์นํ ํด๋๋ฅผ ์ถ๊ฐํด ์ฃผ์๊ณ ,
๋ง์ปค ์ข
์์ฑ์ libfl.a๋ฅผ ์ถ๊ฐํ์ ํ,
๋น๋ ์ ์ด๋ฒคํธ์ flex "$(ProjectDir)ํ์ผ๋ช
.l "์ ๊ฐ์ ํํ๋ก ์ง์ ํด์ฃผ์๋ฉด ํธ๋ฆฌํฉ๋๋ค.
http://www.gnu.org/software/flex/
์ ์ฌ์ดํธ์ ๋ช
์๋์ด ์๋๊ฒ์ฒ๋ผ flex๋ GNU ํ๋ก์ ํธ๊ฐ ์๋๋ฉฐ, BSD์ ๊ฐ๊น์ด ๋ผ์ด์ผ์ค๋ฅผ ์ ์ฉ๋ฐ์ต๋๋ค.
(์์ค์ Copyingํ์ผ)
Flex carries the copyright used for BSD software, slightly modified because it originated at the Lawrence Berkeley (not Livermore!) Laboratory, which operates under a contract with the Department of Energy:
(์์ค์ readmeํ์ผ)
Note that flex is distributed under a copyright very similar to that of BSD Unix, and not under the GNU General Public License (GPL), except for the "configure" script, which is covered by the GPL.