회사 내에서 프로젝트를 진행하며 SQL Parser(이하 파서)가 필요했다.
물론 회사에서 개발을 이제 막 시작한 내게 제대로 된 파서를 기대하진 않을테지만, 아마도 최소한 회사는 내가 파서를 공부하면서 관련 정보를 얻고 지식을 습득하기는 바랄것이다.

무작정 정보의 바다에서 SQL 파서에 관한 정보를 얻다보니 가장 처음 Lex&Yacc를 알게 되었다.
그리고 Plex&Bison에 대해서도...또, Lemon에 대해서도 알게 되었다.
Lex를 보다 보니 Plex가 더 좋다는 글이 눈에 띄고 또 Lemon의 장점을 기술해 놓은 자료를 보면 첨부터 Lemon으로 공부해야하나 싶었지만...
결국 지금 난 Lex를 보고 있다.(이머병....)

처음엔 블로그에 Lex를 따로 구분하지 않고 기타나 개발관련으로 포스팅 하려 했는데 지금...거창하게도 따로 분류하여 포스팅을 하려 한다.
얼마나 갈지는 모르겠지만...
후에도 이 글이 남아있다면 어느정도 Lex를 알게 되고 블로그에 정보를 남긴 모습이리라...

'개발관련 > (Fast)Lex' 카테고리의 다른 글

Yacc, Bison으로 인한 문제  (0) 2013.10.25
lex 간단한 예제2  (0) 2013.10.25
lex 시작하기  (0) 2013.10.24
확장자 규칙의 사용  (0) 2013.10.24
lex를 위한 간단한 Makefile  (0) 2013.10.24

이전 포스트에서 lex를 컴파일 하기 위해 간단하게 Makefile을 작성했다.
lex를 위한 간단한 Makefile

참고로 난 개발자 입문자라고 하기에도 부족한 4년재 대학생만도 못한 실력을 지녔기에,
예제 소스를 하나 추가할 때 마다 일일히 추가해 줘야하는 번거로움이 있었다.
물론 단지 4줄에 불과하지만...먼가 방법이 있지 않을까 하고 생각했다.

기존 소스를 보자.

test : test.c
        $(CC) -o $@ $< -ll

test.c : test.l
        $(LEX) -o $@ $<

test2 : test2.c
        $(CC) -o $@ $< -ll

test2.c: test2.l
        $(LEX) -o $@ $<

number : number.c
        $(CC) -o $@ $< -ll

number.c: number.l
        $(LEX) -o $@ $<

다른 개발자 분들이 쓰는 Makefile을 참고하여 아래와 같이 추가하니 2줄이 줄어드는 기적을 낳으셨다.
이는 .c와 대응 되는 .l은 아래 규칙으로 수행하라는 의미가 된다. 이렇게 추가한 경우 .c에 대한 명령을 일일히 추가할 필요가 없어진 것이다.

.SUFFIXES : .c .l
.l.c :
        $(LEX) -o $@ $<

'개발관련 > (Fast)Lex' 카테고리의 다른 글

Yacc, Bison으로 인한 문제  (0) 2013.10.25
lex 간단한 예제2  (0) 2013.10.25
lex 시작하기  (0) 2013.10.24
시작하기에 앞서...  (0) 2013.10.24
lex를 위한 간단한 Makefile  (0) 2013.10.24

SyntaxHighlighter가 현재 지원하는 브러쉬의 종류표는 아래 페이지에 잘 나와있다.

http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/

 

SyntaxHighlighter 3.0.83

 Bundled Brushes

SyntaxHighlighter uses separate syntax files called brushes to define its highlighting functionality.

Brush name

Brush aliases

File name

ActionScript3

as3, actionscript3

shBrushAS3.js

Bash/shell

bash, shell

shBrushBash.js

ColdFusion

cf, coldfusion

shBrushColdFusion.js

C#

c-sharp, csharp

shBrushCSharp.js

C++

cpp, c

shBrushCpp.js

CSS

css

shBrushCss.js

Delphi

delphi, pas, pascal

shBrushDelphi.js

Diff

diff, patch

shBrushDiff.js

Erlang

erl, erlang

shBrushErlang.js

Groovy

groovy

shBrushGroovy.js

JavaScript

js, jscript, javascript

shBrushJScript.js

Java

java

shBrushJava.js

JavaFX

jfx, javafx

shBrushJavaFX.js

Perl

perl, pl

shBrushPerl.js

PHP

php

shBrushPhp.js

Plain Text

plain, text

shBrushPlain.js

PowerShell

ps, powershell

shBrushPowerShell.js

Python

py, python

shBrushPython.js

Ruby

rails, ror, ruby

shBrushRuby.js

Scala

scala

shBrushScala.js

SQL

sql

shBrushSql.js

Visual Basic

vb, vbnet

shBrushVb.js

XML

xml, xhtml, xslt, html, xhtml

shBrushXml.js