2013-08-31 46 views
-2

我想在if括號內對條件stmt進行分組。說我有一個文本從我CONTENTEDITABLE DIV對條件語句塊進行分組

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

我想他們是相應的組並存儲在一個數組這樣

condFragment.push('x==1 && (x>2 || (!x>2 || x<=0))'); 
condFragment.push('x==1'); 
condFragment.push('(x>2 || (!x>2 || x<=0))'); 
condFragment.push('x>2'); 
condFragment.push('(!x>2 || x<=0)'); 
condFragment.push('!x>2'); 
condFragment.push('x>2'); 
condFragment.push('x<=0'); 

那麼,是否可以通過檢測條件運營商開始這一點,然後將它們並排分開?修改拆分功能?請幫助。

我按照這種方式對它們進行分組,因爲我稍後將獲取數組,並對它們進行評估以顯示它是真是假。我用推,因爲這可能會變成動態數組。

從這:

<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內容

<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> 
+0

目前尚不清楚你在做什麼。當它看上去與jQuery沒有任何關係時,你也可以用它標記jQuery。爲什麼使用'push()'時,你可以使陣列直出?我甚至不確定使用這樣的數組是不是一個好的舉動,而不知道你想要完成什麼。我沒有倒下,但我認爲爲什麼有人會這樣做是可以理解的。 – m59

+0

哈哈深度先搜索? – 2013-08-31 15:25:44

+0

我想分組他們有一個布爾值。推,因爲它們將在代碼的某個點動態使用。 – extraRice

回答

1

如果我是你,我會找到表達的兩側,然後遞歸每側進一步打破。

我會在每一面查找表達式,而不是布爾運算符,但是,如果您找到了正確的運算符,除非您已經解析了左右表達式,否則不會知道爲什麼它會更復雜比它必須?

正如@fireflieslive指出的那樣,這將最終成爲基本的樹遍歷。