PEG.js Parser Generator 1005

Mit PEG.js oder dem Nachfolger PEGGY.js kann man einen eigenen Parser erstellen. Parser analysieren Text und können wichtige Informationen daraus extrahieren und in ein in der Programmierung nutzbares Objekt verwandeln.

PEG.js Ausdrücke

Bei der Nutzung von * oder + wird das Ergebnis immer in einem Array zurückgegeben. Will man diese Arrays zusammenführen, kann man array1.concat(array2) nutzen.

//expression *
(word _?)* //Match zero or more repetitions of the expression and return their match results in an array.

//expression +
letter+ //Match one or more repetitions of the expression and return their match results in an array.

//$ expression
$letter+ //return the matched text instead of the match result. Hier wird z.B.: ein Wort zurückgegeben anstatt die einzelnen Buchstaben.

//expression1 / expression2 / ... / expressionn
start =	( (number _?) / (word _?) )* //hier wird entweder eine Zahl oder ein Wort in den Array aufgenommen

number = $digits+
digits = [0-9]

word = $letter+ 
letter = [a-zA-Z0-9]
_  = " "

Wörter parsen

/* Sucht alle Wörter und gibt diese in einem Array aus*/
//testet ob ein Wort und ein Leerzeichen vorhanden ist, das Leerzeichen ist optional
words = w:(word _?)* { 
	let array = [];
	w.forEach(word => { //iteriert durch alle Wörter Arrays -> [Hallo, ], [mein, ], [Name, ], ...
    	word.splice(1, 1); //entfernt bie [word][_] das Leerzeichen
        array = array.concat(word); //kombiniert die Arrays in einen Array
    })
    
	return array;
}

word = $letter+ 
letter = [a-zA-Z0-9]
_  = " "

Ergebnis:

Links

unsere-schule.org

×

PEG.js Parser Generator

Code: 1005