Herhangi Ayrıştırma İfade Dilbilgisi Javascript veya PHP için (PEG) kütüphaneler var mı?

6 Cevap php

Kendimi etki belirli dilleri tanımlamak için Ayrıştırma İfade Dilbilgisi biçimcilik çizilir, ama şimdiye kadar ben buldum uygulama kodu paylaşılan barındırma ortamında benim örgüt dostu web sunucusu değildir Java ve Haskell gibi dillerde yazılmış bulmak ile yaşamak zorundadır.

Herkes Javascript veya PHP için herhangi bir PEG kütüphane ya PackRat Ayrıştırıcı Jeneratörler biliyor mu? Tabii ki JavaScript veya PHP kaynak kodu üretebilen herhangi bir dilde kod yaratıcılar hile yapardı.

6 Cevap

Geçenlerde JavaScript için PEG.js, PEG-temelli ayrıştırıcı jeneratör yazdım. Bu bir komut satırından kullanılabilir veya tarayıcınızdan deneyebilirsiniz.

Aslında Javascript için bir de vardır: OMeta. http://www.tinlizzie.org/ometa/

Ayrıca Python bu bir sürümünü uygulanan: http://github.com/python-parsley/parsley

php PEG https://github.com/maetl/php-peg

Bu yazı gerçekten eski ama ben google aracılığıyla buldum ve bu cevap olmalıdır

Language.js:

Language.js benzersiz yeni bir şekilde hataları işlemek için "yaramaz OR" operatörü özel bir ek ile, PEG (Ayrıştırma İfade Dilbilgisi) dayanan açık kaynak kodlu yeni deneysel ayrıştırıcı. Bu doğrusal zaman ayrıştırma hızına ulaşmak için memoization kullanıyor

Kouprey kullanımı çok kolay PEG jeneratör / kütüphane JavaScript için de var.

Have you looked at ANTLR? It produces lexer and parser code, handles abstract syntax trees, lets you insert code the grammar to be injected into the lexer/parser code, and its available for a variety of languages!