Erlang 21

erl_prettypr




erlang

erl_prettypr

मॉड्यूल

erl_prettypr

मॉड्यूल सारांश

अमूर्त Erlang सिंटैक्स पेड़ों की सुंदर छपाई।

विवरण

अमूर्त Erlang सिंटैक्स पेड़ों की सुंदर छपाई।

मॉड्यूल prettypr द्वारा परिभाषित अमूर्त सिंटैक्स पेड़ों के पाठ प्रारूपण के लिए यह मॉड्यूल सुंदर-छपाई लाइब्रेरी मॉड्यूल prettypr सामने का छोर है।

जानकारी का प्रकार

संदर्भ ()

सुंदर-प्रिंटर के वर्तमान संदर्भ का प्रतिनिधित्व। हुक कार्यों में पहुँचा जा सकता है।

हुक () = ( syntaxTree() , context() , कंटीन्यूएशन) -> prettypr:document()

उपयोगकर्ता द्वारा नियंत्रित स्वरूपण के लिए एक कॉल-बैक फ़ंक्शन। format/2 देखें।

वाक्य रचना () = erl_syntax:syntaxTree()

एक सार वाक्यविन्यास वृक्ष। विवरण के लिए erl_syntax मॉड्यूल देखें।

निर्यात

सबसे अच्छा (ट्री :: सिंटैक्सट्री ()) -> खाली | prettypr: दस्तावेज़ ()

best(Tree, []) बराबर best(Tree, [])

सबसे अच्छा (ट्री :: सिंटैक्सट्री (), विकल्प :: [टर्म ()]) -> खाली | prettypr: दस्तावेज़ ()

सिंटैक्स ट्री के लिए एक निश्चित "सर्वश्रेष्ठ" सार लेआउट बनाता है। यह layout/2 फ़ंक्शन के समान है, सिवाय इसके कि, यहां दिए गए विकल्पों के संबंध में अंतिम लेआउट का चयन किया गया है। यदि कोई ऐसा लेआउट तैयार नहीं किया जा सकता तो परमाणु empty जाता है। विकल्पों पर जानकारी के लिए, format/2 फ़ंक्शन देखें।

यह भी देखें: best/1 , format/2 , layout/2 , prettypr:best/3

प्रारूप (ट्री :: वाक्य रचना) () -> स्ट्रिंग ()

format/2 बराबर।

प्रारूप (ट्री :: वाक्य रचना) (), विकल्प :: [शब्द ()] -> स्ट्रिंग ()

Prettyprint- प्रारूप एक सार Erlang वाक्यविन्यास पेड़ पाठ के रूप में। उदाहरण के लिए, यदि आपके पास एक .beam फ़ाइल है जिसे debug_info साथ संकलित किया गया है, तो निम्नलिखित को मॉड्यूल के लिए स्रोत कोड प्रिंट करना चाहिए (जैसा कि यह डीबग सूचना प्रतिनिधित्व में दिखता है):

{ok,{_,[{abstract_code,{_,AC}}]}} =
        beam_lib:chunks("myfile.beam",[abstract_code]),
io:put_chars(erl_prettypr:format(erl_syntax:form_list(AC)))

उपलब्ध विकल्प:

{हुक, कोई नहीं | hook() }

जब तक मान none , तब तक दिए गए फ़ंक्शन को प्रत्येक नोड के लिए कहा जाता है, जिनकी एनोटेशन की सूची खाली नहीं है; विवरण के लिए नीचे देखें। डिफ़ॉल्ट मान none

{कागज, पूर्णांक ()}

किसी भी लाइन पर पसंदीदा इंडेंट की अधिकतम संख्या निर्दिष्ट करता है, जिसमें इंडेंटेशन भी शामिल है। डिफ़ॉल्ट मान 80 है।

{रिबन, पूर्णांक ()}

किसी भी लाइन पर पसंदीदा अधिकतम संख्या वर्ण निर्दिष्ट करता है, न कि इंडेंटेशन। डिफ़ॉल्ट मान 65 है।

{उपयोगकर्ता, शब्द ()}

हुक कार्यों में उपयोग के लिए उपयोगकर्ता-विशिष्ट डेटा। डिफ़ॉल्ट मान undefined

{एन्कोडिंग, epp: source_encoding ()}

उत्पन्न फ़ाइल के एन्कोडिंग को निर्दिष्ट करता है।

एक हुक फ़ंक्शन (cf. hook() प्रकार) को वर्तमान सिंटैक्स ट्री नोड, संदर्भ और एक निरंतरता पारित किया जाता है। संदर्भ को get_ctxt_user/1 और set_ctxt_user/2 जैसे फ़ंक्शन द्वारा जांच और हेरफेर किया जा सकता है। हुक को एक "दस्तावेज़" डेटा संरचना लौटना चाहिए ( layout/2 और best/2 ); यह निरंतरता फ़ंक्शन को लागू करके भाग या पूरे में निर्मित किया जा सकता है। उदाहरण के लिए, निम्नलिखित एक तुच्छ हुक है:

fun (Node, Ctxt, Cont) -> Cont(Node, Ctxt) end

जिसके परिणामस्वरूप वही परिणाम प्राप्त होता है जैसे कि कोई हुक नहीं दिया गया था। हालांकि, निम्नलिखित:

fun (Node, Ctxt, Cont) ->
    Doc = Cont(Node, Ctxt),
    prettypr:beside(prettypr:text("<b>"),
                    prettypr:beside(Doc,
                                    prettypr:text("</b>")))
end

HTML "बोल्डफेस स्टार्ट" और "बोल्डफेस एंड" टैग के बीच किसी भी एनोटेट नोड (एनोटेशन डेटा की परवाह किए बिना) के पाठ को जगह देगा।

इन्हें भी देखें: erl_syntax , best/2 , format/1 , get_ctxt_user/1 , layout/2 , set_ctxt_user/2

get_ctxt_hook (Ctxt :: संदर्भ ()) -> हुक ()

Prettyprinter संदर्भ का हुक फ़ंक्शन फ़ील्ड लौटाता है।

यह भी देखें: set_ctxt_hook/2

get_ctxt_linewidth (Ctxt :: संदर्भ ()) -> पूर्णांक ()

Prettyprinter प्रसंग के लाइन चौड़ाई क्षेत्र देता है।

इसे भी देखें: set_ctxt_linewidth/2

get_ctxt_paperwidth (Ctxt :: संदर्भ ()) -> पूर्णांक ()

Prettyprinter संदर्भ के कागज चौड़े क्षेत्र लौटाता है।

इसे भी देखें: set_ctxt_paperwidth/2

get_ctxt_precedence (Ctxt :: संदर्भ) () -> पूर्णांक ()

ऑपरेटर के पूर्ववर्ती क्षेत्र को प्रीटिप्रिन्टर संदर्भ के अनुसार लौटाता है।

यह भी देखें: set_ctxt_precedence/2

get_ctxt_user (Ctxt :: संदर्भ ()) -> शब्द ()

Prettyprinter संदर्भ के उपयोगकर्ता डेटा फ़ील्ड लौटाता है।

इसे भी देखें: set_ctxt_user/2

लेआउट (ट्री :: सिंटैक्सट्री ()) -> prettypr: दस्तावेज़ ()

layout/2 बराबर layout/2

लेआउट (ट्री :: सिंटैक्सट्री (), विकल्प :: [टर्म ()]) -> prettypr: डॉक्यूमेंट ()

एक वाक्यविन्यास पेड़ के लिए एक सार दस्तावेज़ लेआउट बनाता है। परिणाम संभव लेआउट (cf. मॉड्यूल prettypr ) के एक सेट का प्रतिनिधित्व करता है। विकल्पों पर जानकारी के लिए, format/2 देखें; हालाँकि, ध्यान दें कि paper और ribbon विकल्पों को इस फ़ंक्शन द्वारा अनदेखा किया जाता है।

यह फ़ंक्शन सुंदर प्रिंटर को एक निम्न-स्तरीय इंटरफ़ेस प्रदान करता है, संभावित लेआउट का एक लचीला प्रतिनिधित्व लौटाता है, कागज की चौड़ाई से स्वतंत्र होता है जो अंततः स्वरूपण के लिए उपयोग किया जाता है। इसे एक अन्य दस्तावेज़ के हिस्से के रूप में शामिल किया जा सकता है और / या आगे prettypr मॉड्यूल में कार्यों द्वारा सीधे संसाधित किया जा सकता है, या एक हुक फ़ंक्शन में उपयोग किया जा सकता है (विवरण के लिए format/2 देखें)।

इन्हें भी देखें: prettypr , format/2 , layout/1

set_ctxt_hook (Ctxt :: संदर्भ (), हुक :: हुक ()) -> संदर्भ ()

प्रीटिप्रिन्टर संदर्भ के हुक फ़ंक्शन फ़ील्ड को अपडेट करता है।

इसे भी देखें: get_ctxt_hook/1

set_ctxt_linewidth (Ctxt :: संदर्भ (), W :: पूर्णांक ()) -> संदर्भ ()

प्रीटिप्रिन्टर प्रसंग के लाइन वाइड फील्ड को अपडेट करता है।

नोट: इस मान को बदलना (और परिणामी संदर्भ को एक निरंतरता फ़ंक्शन को पास करना) सामान्य स्वरूपण को प्रभावित नहीं करता है, लेकिन हुक कार्यों में उपयोगकर्ता-परिभाषित व्यवहार को प्रभावित कर सकता है।

इसे भी देखें: get_ctxt_linewidth/1

set_ctxt_paperwidth (Ctxt :: संदर्भ (), W :: पूर्णांक ()) -> संदर्भ ()

प्रीटिप्रिन्टर संदर्भ के कागज़ चौड़े क्षेत्र को अपडेट करता है।

नोट: इस मान को बदलना (और परिणामी संदर्भ को एक निरंतरता फ़ंक्शन को पास करना) सामान्य स्वरूपण को प्रभावित नहीं करता है, लेकिन हुक कार्यों में उपयोगकर्ता-परिभाषित व्यवहार को प्रभावित कर सकता है।

इसे भी देखें: get_ctxt_paperwidth/1

set_ctxt_precedence (Ctxt :: संदर्भ (), Prec :: पूर्णांक ()) -> संदर्भ ()

ऑपरेटर के पूर्ववर्ती क्षेत्र को पूर्वनिर्धारित संदर्भ के अद्यतन करता है। ऑपरेटर वरीयता के लिए erl_parse(3) मॉड्यूल देखें।

यह भी देखें: erl_parse(3) , get_ctxt_precedence/1

set_ctxt_user (Ctxt :: संदर्भ (), X :: टर्म ()) -> संदर्भ ()

प्रीटिप्रिन्टर संदर्भ के उपयोगकर्ता डेटा क्षेत्र को अपडेट करता है।

इसे भी देखें: get_ctxt_user/1

रिचर्ड कार्लसन [email protected]