Erlang 21

erl_parse




erlang

erl_parse

मॉड्यूल

erl_parse

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

एरलंग पार्सर।

विवरण

यह मॉड्यूल बुनियादी एरलंग पार्सर है जो टोकन को या तो रूपों के सार रूप में परिवर्तित करता है (अर्थात, शीर्ष स्तर के निर्माण), भाव या शब्द। सार प्रारूप ERTS User's Guide में वर्णित है। ध्यान दें कि टोकन सूची को पार्स फ़ंक्शन ( erl_scan(3) ) मॉड्यूल के लिए स्वीकार्य होने के लिए डॉट टोकन के साथ समाप्त होना चाहिए।

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

abstract_clause ()

एरलंग खंड का सार रूप।

abstract_expr ()

एरलंग अभिव्यक्ति का सार रूप।

abstract_form ()

एरलंग रूप का सार रूप।

abstract_type ()

एरलंग प्रकार का सार रूप।

error_description() = term()
error_info() = { erl_anno:line() , module(), error_description() }

टुपल्स {error, error_info()} और {warning, error_info()} , वाक्यविन्यास गलत रूपों और चेतावनियों, और {eof, line()} को चिह्नित करते हुए, एक पूर्ण प्रपत्र को पार्स किए जाने से पहले एक अंत-धारा को दर्शाते हुए।

निर्यात

सार (डेटा) -> निरपेक्ष

प्रकार

Erlang डेटा संरचना को Data में टाइप AbsTerm एक अमूर्त रूप में AbsTerm । यह फ़ंक्शन normalise/1 का उलटा है।

erl_parse:abstract(T) erl_parse:abstract(T, 0) बराबर है erl_parse:abstract(T, 0)

सार (डेटा, विकल्प) -> निरपेक्ष

प्रकार

Erlang डेटा संरचना को Data में टाइप AbsTerm एक अमूर्त रूप में AbsTerm

विकल्प Line AbsTerm प्रत्येक नोड को सौंपी जाने वाली लाइन है।

विकल्प Encoding का उपयोग उन पूर्णांक सूचियों को चुनने के लिए किया जाता है जिन्हें स्ट्रिंग माना जाता है। डिफ़ॉल्ट को फ़ंक्शन epp:default_encoding/0 द्वारा लौटाए गए एन्कोडिंग का उपयोग करना है epp:default_encoding/0 । मान का none अर्थ none है कि किसी भी पूर्णांक सूची को स्ट्रिंग नहीं माना जाता है। encoding_func() एक समय में एक सूची के एक पूर्णांक के साथ कहा जाता है; यदि यह प्रत्येक पूर्णांक के लिए true , तो सूची को एक स्ट्रिंग माना जाता है।

anno_from_term (शब्द) -> erl_parse_tree() | form_info()

प्रकार

मान लेता है कि Term एक शब्द है जिसमें erl_parse ट्री के समान संरचना है, लेकिन शर्तों के साथ, T कहते हैं, जहां erl_parse ट्री में एनोटेशन का संग्रह है। एक erl_parse ट्री देता है जहाँ प्रत्येक शब्द T को erl_anno:from_term(T) द्वारा लौटाए गए मान से बदल दिया जाता है erl_anno:from_term(T) । यह शब्द गहराई-पहले, बाएं से दाएं फैशन में है।

anno_to_term (निरस्त) -> शब्द ()

प्रकार

एक शब्द लौटाता है जहाँ एनोटेशन का प्रत्येक संग्रह erl_parse ट्री Abstr के नोड्स का Anno को erl_anno:to_term(Anno) द्वारा लौटाए गए शब्द से बदल दिया जाता है। erl_parse ट्री को गहराई-पहले, बाएं से दाएं फैशन में erl_parse है।

fold_anno (फन, Acc0, Abstr) -> Acc1

प्रकार

erl_parse ट्री Abstr के एनोटेशन के प्रत्येक संग्रह पर Fun लागू करके एक संचायक को अपडेट करता है। Fun लिए पहली कॉल में तर्क के रूप में AccIn है, लौटा हुआ संचायक AccOut अगले कॉल के लिए पारित किया जाता है, और इसी तरह। संचायक का अंतिम मान लौटाया जाता है। erl_parse ट्री को गहराई-पहले, बाएं से दाएं फैशन में erl_parse है।

format_error (ErrorDescriptor) -> शुल्क

प्रकार

एक ErrorDescriptor उपयोग करता है और एक स्ट्रिंग देता है जो त्रुटि का वर्णन करता है। इस फ़ंक्शन को आमतौर पर अंतर्निहित रूप से कहा जाता है जब एक ErrorInfo संरचना संसाधित होती है (अनुभाग Error Information देखें)।

map_anno (फन, एब्सट) -> NewAbstr

प्रकार

erl_parse ट्री के नोड्स के प्रत्येक संग्रह पर Fun Abstr erl_parse ट्री Abstr को संशोधित करता है। erl_parse ट्री को गहराई-पहले, बाएं से दाएं फैशन में erl_parse है।

Mapfold_anno (मौज-मस्ती, Acc0, Abstr) -> {NewAbstr, Acc1}

प्रकार

erl_parse ट्री को संशोधित करता है, erl_parse ट्री के एनोटेशन के प्रत्येक संग्रह पर Fun लागू करके erl_parse है, जबकि एक ही समय में एक संचायक को अपडेट करता है। Fun लिए पहली कॉल में सेकंड तर्क के रूप में AccIn है, लौटा हुआ संचायक AccOut अगली कॉल पर जाता है, और इसी तरह। संशोधित erl_parse ट्री और संचायक का अंतिम मान लौटाया जाता है। erl_parse ट्री को गहराई-पहले, बाएं से दाएं फैशन में erl_parse है।

new_anno (शब्द) -> संक्षिप्त करें

प्रकार

मान लेता है कि Term एक शब्द है जिसमें समान संरचना एक erl_parse ट्री के साथ है, लेकिन उन locations साथ जहां erl_parse ट्री में एनोटेशन के संग्रह हैं। एक erl_parse ट्री देता है जहाँ प्रत्येक स्थान L को erl_anno:new(L) द्वारा लौटाए गए मान द्वारा प्रतिस्थापित किया जाता है erl_anno:new(L) । यह शब्द गहराई-पहले, बाएं से दाएं फैशन में है।

सामान्य करें (AbsTerm) -> डेटा

प्रकार

एक पारंपरिक Erlang डेटा संरचना में एक शब्द के सार रूप AbsTerm को परिवर्तित करता है (अर्थात, शब्द ही)। यह फ़ंक्शन abstract/1 का विलोम है।

parse_exprs (टोकन) -> {ठीक है, ExprList} | {त्रुटि, ErrorInfo}

प्रकार

पर्स Tokens जैसे कि यह भावों की सूची थी। निम्न में से एक लौटाता है:

{ok, ExprList}

पार्सिंग सफल रही। ExprList , पार्स किए गए भावों के सार रूपों की एक सूची है।

{error, ErrorInfo}

एक त्रुटि पाई गई।

parse_form (टोकन) -> {ठीक है, AbsForm} | {त्रुटि, ErrorInfo}

प्रकार

पर्स को Tokens रूप में अगर यह एक रूप था। निम्न में से एक लौटाता है:

{ok, AbsForm}

पार्सिंग सफल रही। AbsForm सार रूप का सार रूप है।

{error, ErrorInfo}

एक त्रुटि पाई गई।

parse_term (टोकन) -> {ठीक है, टर्म} | {त्रुटि, ErrorInfo}

प्रकार

पारस Tokens जैसे कि यह एक शब्द था। निम्न में से एक लौटाता है:

{ok, Term}

पार्सिंग सफल रही। Term टोकन सूची के अनुसार एर्लैंग शब्द है।

{error, ErrorInfo}

एक त्रुटि पाई गई।

टोकन (AbsTerm) -> टोकन
टोकन (AbsTerm, MoreTokens) -> टोकन

प्रकार

एक अभिव्यक्ति के सार रूप का प्रतिनिधित्व करने वाले टोकन की एक सूची बनाता है। वैकल्पिक रूप से, MoreTokens को जोड़ा जाता है।

त्रुटि सूचना

ErrorInfo मानक ErrorInfo संरचना है जो सभी I / O मॉड्यूल से वापस आ जाती है। प्रारूप इस प्रकार है:

{ErrorLine, Module, ErrorDescriptor}

त्रुटि का वर्णन करने वाला एक स्ट्रिंग निम्नलिखित कॉल के साथ प्राप्त किया जाता है:

Module:format_error(ErrorDescriptor)

यह भी देखें

erl_anno(3) , erl_scan(3) , io(3) , अनुभाग ERF उपयोगकर्ता गाइड में The Abstract Format