RegExp for event identifiers

by Yahiko

HTML

<body>
    <div>Fichier</div>
    <textarea id="File" readonly class="code" style="width:100%;height:100px"></textarea>
    <div>Evenements</div>
    <textarea id="Events" readonly class="code" style="width:100%"></textarea>
</body>

JavaScript

// Pas de support pour les nested classes
var file = "";
file += "class CharacterModel extends MvcModel {\n";
file += "  public hp: number;\n";
file += "  public attributeChanged: MvcEvent;\n";
file += "  public statusChanged: MvcEvent;\n";
file += "}\n";
$("#File").text(file);
lines = file.split("\n");

var reClassId = /\s*class\s*\b([A-Za-z_]\w*)\b.*/;
var reEventId = /\s*public\s*\b([A-Za-z_]\w*)\b\s*:\s*MvcEvent\s*(?:=.+)?;/;
var events = [];
var curClass = "";

for (var i=0; i<lines.length; i++) {
    var line = lines[i];
    
    var result = reClassId.exec(line);
    if (result) {
        curClass = result[1];
    }
    
    var result = reEventId.exec(line);
    if (result) {
        events[result[1]] = curClass;
    }
} // for i

var text = "";
for (var key in events) {
    var value = events[key];
    text += key + "\n";
} // for i
$("#Events").text(text);