Syntax Highlighter 2.0용 x86 어셈블리 브러쉬 공개

Visual Studio 계열 쉬프트(>>) 연산 버그의 원인이라는 뻘포스팅을 하면서 보니 Syntax Highlighter에 어셈블리 브러쉬가 없더라. 워낙 기본적인 언어라 있을 것 같기도 한데 참...

아뭏든, 하나 있으면 좋을 것 같아 만들어봤다.
일단, 아래 파일을 다운받아 압축을 풀고 올리고 나서


아래의 내용을 HTML 헤더에 추가한 뒤에

<script type="text/javascript" src="scripts/shBrushAsm.js"></script>

아래와 같이 적으면 된다.

<pre class="brush: asm;">어셈블러 코드</pre>

brush 명은 asm 또는 x86을 사용하면 된다.
기타 자세한 설명은 기존 포스팅을 참고. (어짜피 이거 쓰려는 분들은 뭔지 잘 아실 것이니 자세한 설명은 생략)
적용한 화면은 아래와 같다.

사용자 삽입 이미지

그런데, 문제가 있다.
당연한 얘기지만, SH의 브러쉬는 거대한 정규식 덩어리다.
주석 역시 정규식으로 지정되어 있는데, 하필 어셈블러의 주석은 애매하기 짝이 없는 세미콜론(;)이다.

이건 단독으로는 평범한 문자이지만, &nbsp; 와 같이 사용될 때는 의미를 갖기 때문에 정규식으로 구성하기가 너무 어렵다.
현재는 아래와 같이 애매하게 지정해뒀다.

{ regex: /^;.*$/gm,     css: 'comments' },            // one line comments
{ regex: /\s\;.*$/gm,     css: 'comments' },          // one line comments

즉, 행의 맨 처음이거나 바로 앞에 공백이 있는 경우만 주석으로 처리하는 것이다.
이게 문제가 될 수 있는 것이 mov ecx, 32;00000020H 처럼 쓰는 경우엔 주석으로 인식을 못 하는 거다.

정규식으로 &문자열; 의 포맷이 아닌 경우를 찾는 방법을 못 찾아 미봉책만 쓴 것이다.

혹시 이런 경우에 사용할 수 있는 정규식을 아시는 고수분 계시면 한 수 가르침 부탁드린다.




Trackback 1 Comment 4
  1. Favicon of http://un-i.tistory.com/ BlogIcon Un-i-que 2009.09.09 22:13 address edit & delete reply

    엉엉 뺏겼다 ㅜㅠ
    트랙백 감사합니다. 저는 만들던 거 계속 만들어도 되겠죠? ㅋㅋㅋ

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2009.09.09 22:44 address edit & delete

      그래도 제가 만든 게 예약어가 훨 많다능! ㅎㅎ

    • Favicon of http://un-i.tistory.com/ BlogIcon Un-i-que 2009.09.12 11:00 address edit & delete

      GAS랑 NASM, MASM을 짬뽕해 놓으시지 않았습니까-_-;; 그리고 제 거는 일단 8086 표준 명령어을 기준으로 하고 있죠.
      흠... 그런데 예약어도 asm이고 파일명도 shBrushAsm.zip이군요.
      블루앤라이브 님께서 싫지 않으시다면 ARM 명령어를 추가해 보는 건 어떨까요. (응?)

      그리고 제 거 계속 만들어도 되냐는 질문에는 아직 대답 안 해 주셨습니다 ㅋㅋㅋ

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2009.09.14 02:54 address edit & delete

      ㅎㅎ
      사실, 저 예약어들은 어디에선가 사용하는 걸 스브적 업어왔... (응?)

      그리고... 만드시는 걸 저한테 허락을 받으실 수야... ㅎㅎㅎ