पर है,, slimit
कहा जाता है:
SlimIt एक जावास्क्रिप्ट minifier पायथन में लिखा है। यह जावास्क्रिप्ट को अधिक कॉम्पैक्ट कोड में संकलित करता है ताकि यह तेज़ी से डाउनलोड और चला सके।
स्लिम यह एक लाइब्रेरी भी प्रदान करता है जिसमें एक जावास्क्रिप्ट पार्सर, लेक्सर, सुंदर प्रिंटर और एक पेड़ विज़िटर शामिल है।
डेमो:
कल्पना कीजिए हम निम्नलिखित जावास्क्रिप्ट कोड है:
$.ajax({
type: "POST",
url: 'http://www.example.com',
data: {
email: '[email protected]',
phone: '9999999999',
name: 'XYZ'
}
});
और अब हम data
वस्तु से email
, phone
और name
मूल्यों को प्राप्त करने की आवश्यकता है।
विचार यहाँ एक slimit
पार्सर का दृष्टांत के लिए, सभी नोड्स पर जाते हैं, सभी कार्य को फ़िल्टर और उन्हें शब्दकोश में डाल दिया होगा:
from slimit import ast
from slimit.parser import Parser
from slimit.visitors import nodevisitor
data = """
$.ajax({
type: "POST",
url: 'http://www.example.com',
data: {
email: '[email protected]',
phone: '9999999999',
name: 'XYZ'
}
});
"""
parser = Parser()
tree = parser.parse(data)
fields = {getattr(node.left, 'value', ''): getattr(node.right, 'value', '')
for node in nodevisitor.visit(tree)
if isinstance(node, ast.Assign)}
print fields
यह प्रिंट:
{'name': "'XYZ'",
'url': "'http://www.example.com'",
'type': '"POST"',
'phone': "'9999999999'",
'data': '',
'email': "'[email protected]'"}
यह वही हो सकता है जो मुझे चाहिए, क्योंकि मैं वास्तव में मानक जावास्क्रिप्ट व्याकरण का विस्तार करना चाहता हूं। धन्यवाद! – Claudiu
antlr3 के लिए दोनों ecmascript/जावास्क्रिप्ट व्याकरण टूट गए हैं और अनियमित हैं। यह एक लाल हेरिंग है। –