Anladığım kadarıyla yapmak istediğin işlem text parsing.Kod editörünü kendin sıfırdan yapmak istemezsen TinyMCE tarzı hazır javascript bileşenler faydalı olabilir.Kullanabileceğin buna benzer şeyler istersen burada birkaç tane daha var açıklamalarıyla beraber.Text parsing işlemi,derleyici mimarisinin bir bölümünü oluşturan bir konu.Sen ise bu durumda istediğin işlemi yapabilmek için javascript split metodunu kullanabilirsin.Son kullanıcının text area ya da text box içine yazdıklarını parçalara ayırıp kelime tanıma işlemi yapıp buna göre istediğin renklendirme işlemini yapabilirsin.
Örneğin aşağıdaki gibi tek satırlık bir kodumuz olsun.Burada int kelimesinin rengini değiştirmek istediğimizi varsayalım.
#int sayi1;
float sayi2;
Burada int kelimesini tanıyıp işlem yapmak istiyorsak int kelimesini,önündeki # direktifinden anlarız.# işaretinden sonra boşluğa kadar olan kısmı tanı.Bu kısım int kelimesine eşit ise şunları yap diyebiliriz.İkinci kısımda ise bir özel karakter olmadan kelime tanımamız gerekli.
Aşağıda yazmaya çalışacağım kod ile anlatmaya çalışacağım.İfadeleri gerekli şekilde ayırdıktan sonra istediğin işlemleri üzerlerine uygulayabilirsin diye düşünüyorum.
var yazi = ..;
var kelimeler = yazi.split(" "); //yazılanları kelime kelime ayir,aralarında boşluk olup olmamasına göre
var n = kelimeler.length;
var i;
var suanIslenenKisim;
var ifadeDizisi = Array();
var kisimDizisi = Array();
for (i = 0; i < n; i++) {
var kelime = kelimeler[i];
if (kelime.indexOf('#') == 1) {
//örneğin int'li ifadenin başlangıcı burası,bundan sonra aşağıdaki döngüye geçicek
break;
} else {
// Ya da ifadeyi dizi içine alacağız
ifadeDizisi.push(kelime);
}
}
for ( ; i < n; i++) {
var kelime = kelimeler[i];
if (kelime.indexOf('#') == 1) {
suanIslenenKisim = kelime;
kisimDizisi[suanIslenenKisim] = new Array();
} else {
kisimDizisi[suanIslenenKisim].push(kelime);
}
}
Biraz karışık olduğunun farkındayım JS ile ilgili herhangi bir tecrübem yok,mantık olarak aktarmaya çalıştım.Kolay gelsin