Как структуру. Нужно учитывать не только пробелы, но и разный регистр ключевых слов.
В общем для сравнения разделил текст на лексемы двух типов: с учетом регистра (обрамлены символами ' или `) и без учета регистра (всё остальное).
Разбиваю текст на эти лексемы и потом уже их сравниваю. Вроде работает.
// Разобьем текст на лексемы
function _parse(text)
{
var res=[];
res.pushS=function(s){
if( s.length>0 )
this.push(s);
};
//
var s="";
for(var i=0;i<text.length;i++)
{
var ch=text.charAt(i);
switch(ch)
{ // регистрозависимый текст
case "'":
case "`":
{
res.pushS(s);
var e=text.indexOf(ch,i+1);
res.pushS( text.substring(i+1,e) );
s = "";
//
i = e;
}
break;
// Символы окончания лексемы
case " ":
case "\r":
case "\n":
{
res.pushS(s.toLowerCase());
s="";
}
break;
// Просто добавляем символ к лексеме
default:
{
s+=ch;
}
break;
}
}
res.pushS(s);
//
return res;
}