Erlang 21

erl_scan




erlang

erl_scan

मॉड्यूल

erl_scan

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

एर्लैंग टोकन स्कैनर।

विवरण

इस मॉड्यूल में Erlang टोकन में टोकन (स्कैनिंग) वर्णों के लिए फ़ंक्शंस हैं।

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

category() = atom()
error_description() = term()
error_info() =
{ erl_anno:location() , module(), error_description() }

option() =
return |
return_white_spaces |
return_comments |
text |
{reserved_word_fun, resword_fun() }

options() = option() | [ option() ]
symbol() = atom() | float() | integer() | string()
resword_fun() = fun((atom()) -> boolean())
tokens() = [ token() ]
tokens_result() =
{ok, Tokens :: tokens() , EndLocation :: erl_anno:location() } |
{eof, EndLocation :: erl_anno:location() } |
{error,
ErrorInfo :: error_info() ,
EndLocation :: erl_anno:location() }

निर्यात

श्रेणी (टोकन) -> category()

प्रकार

Token की श्रेणी देता है।

कॉलम (टोकन) -> erl_anno:column() | अपरिभाषित

प्रकार

Token के एनोटेशन के संग्रह का कॉलम लौटाता है।

end_location (टोकन) -> erl_anno:location() | अपरिभाषित

प्रकार

Token के एनोटेशन के संग्रह के पाठ का अंतिम स्थान लौटाता है। यदि कोई पाठ नहीं है, तो undefined लौटा दिया जाता है।

format_error (ErrorDescriptor) -> स्ट्रिंग ()

प्रकार

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

लाइन (टोकन) -> erl_anno:line()

प्रकार

Token की एनोटेशन के संग्रह की लाइन लौटाता है।

स्थान (टोकन) -> erl_anno:location()

प्रकार

Token के एनोटेशन के संग्रह का स्थान लौटाता है।

आरक्षित_शब्द (परमाणु :: परमाणु) () -> बूलियन ()

अगर Atom एक एर्लांग आरक्षित शब्द है, तो true है, अन्यथा false

स्ट्रिंग (स्ट्रिंग) -> वापसी
स्ट्रिंग (स्ट्रिंग, स्टार्टलोकेशन) -> वापसी
स्ट्रिंग (स्ट्रिंग, StartLocation, विकल्प) -> वापसी

प्रकार

अक्षर String की सूची लेता है और उन्हें स्कैन (टोकन) करने की कोशिश करता है। निम्न में से एक लौटाता है:

{ok, Tokens, EndLocation}

Tokens String से एरलांग टोकन हैं। अंतिम टोकन के बाद EndLocation पहला स्थान है।

{error, ErrorInfo, ErrorLocation}

एक त्रुटि पाई गई। त्रुटिपूर्ण टोकन के बाद ErrorLocation पहला स्थान है।

string(String) string(String, 1) , और string(String, StartLocation) string(String, StartLocation, []) बराबर है।

स्कैनिंग शुरू होने पर शुरुआती स्थान इंगित करता है। यदि StartLocation एक लाइन है, तो Anno , EndLocation और ErrorLocation लाइनें हैं। यदि StartLocation एक पंक्ति और स्तंभ की एक जोड़ी है, तो Anno एक अपारदर्शी यौगिक डेटा प्रकार का रूप लेता है, और EndLocation और ErrorLocation एक पंक्ति और स्तंभ के जोड़े होते हैं। टोकन एनोटेशन में कॉलम और लाइन के बारे में जानकारी होती है, जहां टोकन शुरू होता है, साथ ही टोकन का पाठ (यदि विकल्प text निर्दिष्ट किया गया है), जिसमें से सभी कॉलिंग column/1 , line/1 , location/1 तक पहुंच सकते हैं। location/1 , और text/1

एक टोकन एक ट्यूपल है जिसमें सिंटैक्टिक श्रेणी, टोकन एनोटेशन और टर्मिनल प्रतीक के बारे में जानकारी है। विराम चिह्नों के लिए (जैसे ; और ; ) और आरक्षित शब्दों में, श्रेणी और प्रतीक मेल खाते हैं, और टोकन एक टू-टपल द्वारा दर्शाया जाता है। तीन-टुपल्स में निम्न में से एक रूप है:

  • {atom, Anno, atom()}
  • {char, Anno, char()}
  • {comment, Anno, string()}
  • {float, Anno, float()}
  • {integer, Anno, integer()}
  • {var, Anno, atom()}
  • {white_space, Anno, string()}

मान्य विकल्प:

{reserved_word_fun, reserved_word_fun()}

एक कॉलबैक फ़ंक्शन जिसे स्कैनर को एक अनछुए परमाणु मिला है, कहा जाता है। यदि फ़ंक्शन true हो जाता true , तो निर्विवाद परमाणु स्वयं टोकन की श्रेणी बन जाता है। यदि फ़ंक्शन false हो जाता है, तो atom निर्विवाद परमाणु की श्रेणी बन जाता है।

return_comments

वापसी टिप्पणी टोकन।

return_white_spaces

सफेद स्थान टोकन वापस करें। अधिवेशन के द्वारा, एक नई वर्ण विशेषता, यदि मौजूद है, तो हमेशा पाठ का पहला वर्ण होता है (एक सफेद स्थान टोकन में एक से अधिक नई पंक्ति नहीं हो सकती है)।

return

[return_comments, return_white_spaces] लिए लघु।

text

टोकन एनोटेशन में टोकन टेक्स्ट शामिल करें। पाठ टोकन के अनुरूप इनपुट का हिस्सा है।

प्रतीक (टोकन) -> symbol()

प्रकार

Token का प्रतीक लौटाता है।

पाठ (टोकन) -> erl_anno:text() | अपरिभाषित

प्रकार

Token के एनोटेशन के संग्रह का पाठ लौटाता है। यदि कोई पाठ नहीं है, तो undefined लौटा दिया जाता है।

टोकन (कंटीन्यूएशन, चार्स्पेक, स्टार्टलोकेशन) -> वापसी
टोकन (कंटीन्यूएशन, चार्स्पेक, स्टार्टलोकेशन, ऑप्शंस) -> रिटर्न

प्रकार

एक अपारदर्शी निरंतरता।

यह फिर से प्रवेश करने वाला स्कैनर है, जो वर्णों को या तो एक बिंदु तक स्कैन करता है (''। उसके बाद एक श्वेत स्थान) या eof तक पहुँच जाता है। यह रिटर्न:

{done, Result, LeftOverChars}

इंगित करता है कि परिणाम प्राप्त करने के लिए पर्याप्त इनपुट डेटा है। Result है:

{ok, Tokens, EndLocation}

स्कैनिंग सफल रही। Tokens डॉट सहित टोकन की सूची है।

{eof, EndLocation}

फ़ाइल का अंत किसी भी अधिक टोकन से पहले किया गया था।

{error, ErrorInfo, EndLocation}

एक त्रुटि पाई गई। LeftOverChars इनपुट डेटा के शेष वर्ण हैं, जो EndLocation से शुरू EndLocation

{more, Continuation1}

एक शब्द के निर्माण के लिए अधिक डेटा की आवश्यकता होती है। अधिक डेटा उपलब्ध होने पर tokens/3,4 एक नए कॉल में Continuation1 को पास किया जाना चाहिए।

फ़ाइल के CharSpec सिग्नल समाप्त होते हैं। LeftOverChars इसके बाद वैल्यू eof लेता है।

tokens(Continuation, CharSpec, StartLocation) tokens(Continuation, CharSpec, StartLocation, []) बराबर है।

विकल्पों के विवरण के लिए, string/3 देखें।

त्रुटि सूचना

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

{ErrorLocation, Module, ErrorDescriptor}

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

Module:format_error(ErrorDescriptor)

टिप्पणियाँ

री-एंट्रेंट इनपुट फ़ंक्शंस में पहली कॉल की निरंतरता [] होनी चाहिए। री-एंट्रेंट इनपुट योजना कैसे काम करती है, इसका पूरा विवरण देखने के लिए आर्मस्ट्रांग, विरडिंग और विलियम्स: urrent एरलैंग में समवर्ती प्रोग्रामिंग ’, अध्याय 13।

यह भी देखें

erl_anno(3) , erl_parse(3) , io(3)