2013-09-02 2 views
1

if 조건의 모든 부분을 if 괄호 안에 그룹화하려면 어떻게해야합니까? 내 contenteditable div의 텍스트가 있다고 가정 해보십시오. 이것은 Syntax Highlighting 이상입니다. 나중에 코드에서 처리하기 위해 줄 바꿈 텍스트를 사용합니다.모든 조건문을 그룹으로 묶기

<div id="board"> 
    <div>int main(){</div> 
    <div></div> 
    <div>if(x==1 && !x>2)</div> 
    <div>statement;</div> 
    <div>while(!x>5){</div> 
    <div>statement;}</div> 
    <div>}</div> 
</div> 

이 내가 condFragment 콘텐츠를 사용에서 무엇을 달성하고자한다 :

text = if (x==1 && (x>2 || (!x>2 || x<=0))) 

나는 그들이이에서이

condFragment[0]=('x==1 && (x>2 || (!x>2 || x<=0))'); 
condFragment[1]=('x==1'); 
condFragment[2]=('(x>2 || (!x>2 || x<=0))'); 
condFragment[3]=('x>2'); 
condFragment[4]=('(!x>2 || x<=0)'); 
condFragment[5]=('!x>2'); 
condFragment[6]=('x>2'); 
condFragment[7]=('x<=0'); 

같은 배열에 따라 저장 그룹 싶습니다

<div id="board"> 
    <div>int main(){</div> 
    <div></div> 
    <div> 
    if(<span class="frag"><span class="frag">x==1</span> && 
    <span class="frag">!<span class="frag">x>2</span></span></span>) 
    </div> 
    <div>statement;</div> 
    <div>while(!x>5){</div> 
    <div>statement;}</div> 
    <div>}</div> 
</div> 

UPDATE

이것을 text에 따라 해결에 내 생각은 다음과 같습니다

  1. 검색 & &에 대한 || ! 왼쪽에서 오른쪽으로
  2. 발견 한 얻기 같이 IndexOf (& & 또는 || 또는!)
  3. 가 발견 & &의 왼쪽은 괄호로 둘러싸인 경우 경우 & &
  4. 의 인덱스까지 거기에서 슬라이스 & &의 오른쪽 열린 괄호가있는 경우, 2)

발견 1까지 & & 후 슬라이스하지만 난 것을 어떻게 알 수 있습니까 그게 내가 슬라이스해야 할 장소 야?

+0

Offtopic : 많은 구문 형광펜이 있습니다. 바퀴를 재발 명하고 싶습니까? – undefined

+0

@undefined, 구문 강조 이외에 나중에 평가할 줄 바꾸기 텍스트를 사용합니다 – extraRice

답변

1

이 경우 전체 자바 스크립트 파서를 사용하는 것이 좋습니다.

https://github.com/mishoo/UglifyJS을 살펴보십시오.

이 프로젝트에는 전체 JS 파서가 포함되어 있습니다.

+0

github, 초보자 사용 방법은 알고 있지 않습니다. – extraRice

+0

https://help.github.com/ github 사용 방법은 다음과 같습니다. :) – Joon

+1

github 및 기존 라이브러리를 사용하는 방법을 배우는 데 시간과 노력이 거의 들지 않습니다. 자신의 파서를 만드는 것보다. 그것은 당신에게 1 년이 걸릴지도 모릅니다. 다른 한편, UglifyJS는 이미 수백만 명이 실제로 잘 작동하고 있음이 입증되었습니다. – Joon

관련 문제