⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 b::concise.3

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 3
📖 第 1 页 / 共 3 页
字号:
.IP "\fB\-linenoise\fR" 4.IX Item "-linenoise"Use formatting conventions in which the name of each \s-1OP\s0, rather than beingwritten out in full, is represented by a one\- or two-character abbreviation.This is mainly a joke..IP "\fB\-debug\fR" 4.IX Item "-debug"Use formatting conventions reminiscent of \fBB::Debug\fR; these aren'tvery concise at all..IP "\fB\-env\fR" 4.IX Item "-env"Use formatting conventions read from the environment variables\&\f(CW\*(C`B_CONCISE_FORMAT\*(C'\fR, \f(CW\*(C`B_CONCISE_GOTO_FORMAT\*(C'\fR, and \f(CW\*(C`B_CONCISE_TREE_FORMAT\*(C'\fR..Sh "Options for tree-specific formatting".IX Subsection "Options for tree-specific formatting".IP "\fB\-compact\fR" 4.IX Item "-compact"Use a tree format in which the minimum amount of space is used for thelines connecting nodes (one character in most cases). This squeezes outa few precious columns of screen real estate..IP "\fB\-loose\fR" 4.IX Item "-loose"Use a tree format that uses longer edges to separate \s-1OP\s0 nodes. This formattends to look better than the compact one, especially in \s-1ASCII\s0, and isthe default..IP "\fB\-vt\fR" 4.IX Item "-vt"Use tree connecting characters drawn from the \s-1VT100\s0 line-drawing set.This looks better if your terminal supports it..IP "\fB\-ascii\fR" 4.IX Item "-ascii"Draw the tree with standard \s-1ASCII\s0 characters like \f(CW\*(C`+\*(C'\fR and \f(CW\*(C`|\*(C'\fR. These don'tlook as clean as the \s-1VT100\s0 characters, but they'll work with almost anyterminal (or the horizontal scrolling mode of \fIless\fR\|(1)) and are suitablefor text documentation or email. This is the default..PPThese are pairwise exclusive, i.e. compact or loose, vt or ascii..Sh "Options controlling sequence numbering".IX Subsection "Options controlling sequence numbering".IP "\fB\-base\fR\fIn\fR" 4.IX Item "-basen"Print \s-1OP\s0 sequence numbers in base \fIn\fR. If \fIn\fR is greater than 10, thedigit for 11 will be 'a', and so on. If \fIn\fR is greater than 36, the digitfor 37 will be 'A', and so on until 62. Values greater than 62 are notcurrently supported. The default is 36..IP "\fB\-bigendian\fR" 4.IX Item "-bigendian"Print sequence numbers with the most significant digit first. This is theusual convention for Arabic numerals, and the default..IP "\fB\-littleendian\fR" 4.IX Item "-littleendian"Print seqence numbers with the least significant digit first.  This isobviously mutually exclusive with bigendian..Sh "Other options".IX Subsection "Other options".IP "\fB\-src\fR" 4.IX Item "-src"With this option, the rendering of each statement (starting with thenextstate \s-1OP\s0) will be preceded by the 1st line of source code thatgenerates it.  For example:.Sp.Vb 10\&    1  <0> enter\&    # 1: my $i;\&    2  <;> nextstate(main 1 junk.pl:1) v:{\&    3  <0> padsv[$i:1,10] vM/LVINTRO\&    # 3: for $i (0..9) {\&    4  <;> nextstate(main 3 junk.pl:3) v:{\&    5  <0> pushmark s\&    6  <$> const[IV 0] s\&    7  <$> const[IV 9] s\&    8  <{> enteriter(next\->j last\->m redo\->9)[$i:1,10] lKS\&    k  <0> iter s\&    l  <|> and(other\->9) vK/1\&    # 4:     print "line ";\&    9      <;> nextstate(main 2 junk.pl:4) v\&    a      <0> pushmark s\&    b      <$> const[PV "line "] s\&    c      <@> print vK\&    # 5:     print "$i\en";\&    ....Ve.ie n .IP "\fB\-stash=""somepackage""\fR" 4.el .IP "\fB\-stash=``somepackage''\fR" 4.IX Item "-stash=somepackage"With this, \*(L"somepackage\*(R" will be required, then the stash isinspected, and each function is rendered..PPThe following options are pairwise exclusive..IP "\fB\-main\fR" 4.IX Item "-main"Include the main program in the output, even if subroutines were alsospecified.  This rendering is normally suppressed when a subroutinename or reference is given..IP "\fB\-nomain\fR" 4.IX Item "-nomain"This restores the default behavior after you've changed it with '\-main'(it's not normally needed).  If no subroutine name/ref is given, main isrendered, regardless of this flag..IP "\fB\-nobanner\fR" 4.IX Item "-nobanner"Renderings usually include a banner line identifying the function nameor stringified subref.  This suppresses the printing of the banner..Sp\&\s-1TBC:\s0 Remove the stringified coderef; while it provides a 'cookie' foreach function rendered, the cookies used should be 1,2,3.. not arandom hex-address.  It also complicates string comparison of twodifferent trees..IP "\fB\-banner\fR" 4.IX Item "-banner"restores default banner behavior..IP "\fB\-banneris\fR => subref" 4.IX Item "-banneris => subref"\&\s-1TBC:\s0 a hookpoint (and an option to set it) for a user-suppliedfunction to produce a banner appropriate for users needs.  It's notideal, because the rendering-state variables, which are a naturalcandidate for use in concise.t, are unavailable to the user..Sh "Option Stickiness".IX Subsection "Option Stickiness"If you invoke Concise more than once in a program, you should know thatthe options are 'sticky'.  This means that the options you provide inthe first call will be remembered for the 2nd call, unless youre-specify or change them..SH "ABBREVIATIONS".IX Header "ABBREVIATIONS"The concise style uses symbols to convey maximum info with minimalclutter (like hex addresses).  With just a little practice, you canstart to see the flowers, not just the branches, in the trees..Sh "\s-1OP\s0 class abbreviations".IX Subsection "OP class abbreviations"These symbols appear before the op-name, and indicate theB:: namespace that represents the ops in your Perl code..PP.Vb 11\&    0      OP (aka BASEOP)  An OP with no children\&    1      UNOP             An OP with one child\&    2      BINOP            An OP with two children\&    |      LOGOP            A control branch OP\&    @      LISTOP           An OP that could have lots of children\&    /      PMOP             An OP with a regular expression\&    $      SVOP             An OP with an SV\&    "      PVOP             An OP with a string\&    {      LOOP             An OP that holds pointers for a loop\&    ;      COP              An OP that marks the start of a statement\&    #      PADOP            An OP with a GV on the pad.Ve.Sh "\s-1OP\s0 flags abbreviations".IX Subsection "OP flags abbreviations"\&\s-1OP\s0 flags are either public or private.  The public flags alter thebehavior of each opcode in consistent ways, and are represented by 0or more single characters..PP.Vb 12\&    v      OPf_WANT_VOID    Want nothing (void context)\&    s      OPf_WANT_SCALAR  Want single value (scalar context)\&    l      OPf_WANT_LIST    Want list of any length (list context)\&                            Want is unknown\&    K      OPf_KIDS         There is a firstborn child.\&    P      OPf_PARENS       This operator was parenthesized.\&                             (Or block needs explicit scope entry.)\&    R      OPf_REF          Certified reference.\&                             (Return container, not containee).\&    M      OPf_MOD          Will modify (lvalue).\&    S      OPf_STACKED      Some arg is arriving on the stack.\&    *      OPf_SPECIAL      Do something weird for this op (see op.h).Ve.PPPrivate flags, if any are set for an opcode, are displayed after a '/'.PP.Vb 2\&    8  <@> leave[1 ref] vKP/REFC \->(end)\&    7     <2> sassign vKS/2 \->8.Ve.PPThey're opcode specific, and occur less often than the public ones, sothey're represented by short mnemonics instead of single-chars; see\&\fIop.h\fR for gory details, or try this quick 2\-liner:.PP.Vb 2\&  $> perl \-MB::Concise \-de 1\&  DB<1> |x \e%B::Concise::priv.Ve.SH "FORMATTING SPECIFICATIONS".IX Header "FORMATTING SPECIFICATIONS"For each line-style ('concise', 'terse', 'linenoise', etc.) there are3 format-specs which control how OPs are rendered..PPThe first is the 'default' format, which is used in both basic and execmodes to print all opcodes.  The 2nd, goto-format, is used in execmode when branches are encountered.  They're not real opcodes, and areinserted to look like a closing curly brace.  The tree-format is treespecific..PPWhen a line is rendered, the correct format-spec is copied and scannedfor the following items; data is substituted in, and othermanipulations like basic indenting are done, for each opcode rendered..PPThere are 3 kinds of items that may be populated; special patterns,#vars, and literal text, which is copied verbatim.  (Yes, it's a setof s///g steps.).Sh "Special Patterns".IX Subsection "Special Patterns"These items are the primitives used to perform indenting, and toselect text from amongst alternatives..IP "\fB(x(\fR\fIexec_text\fR\fB;\fR\fIbasic_text\fR\fB)x)\fR" 4.IX Item "(x(exec_text;basic_text)x)"Generates \fIexec_text\fR in exec mode, or \fIbasic_text\fR in basic mode..IP "\fB(*(\fR\fItext\fR\fB)*)\fR" 4.IX Item "(*(text)*)"Generates one copy of \fItext\fR for each indentation level..IP "\fB(*(\fR\fItext1\fR\fB;\fR\fItext2\fR\fB)*)\fR" 4.IX Item "(*(text1;text2)*)"Generates one fewer copies of \fItext1\fR than the indentation level, followedby one copy of \fItext2\fR if the indentation level is more than 0..IP "\fB(?(\fR\fItext1\fR\fB#\fR\fIvar\fR\fIText2\fR\fB)?)\fR" 4.IX Item "(?(text1#varText2)?)"If the value of \fIvar\fR is true (not empty or zero), generates thevalue of \fIvar\fR surrounded by \fItext1\fR and \fIText2\fR, otherwisenothing..IP "\fB~\fR" 4.IX Item "~"Any number of tildes and surrounding whitespace will be collapsed toa single space..Sh "# Variables".IX Subsection "# Variables"These #vars represent opcode properties that you may want as part ofyour rendering.  The '#' is intended as a private sigil; a #var'svalue is interpolated into the style-line, much like \*(L"read \f(CW$this\fR\*(R"..PPThese vars take 3 forms:.IP "\fB#\fR\fIvar\fR" 4.IX Item "#var"A property named 'var' is assumed to exist for the opcodes, and isinterpolated into the rendering..IP "\fB#\fR\fIvar\fR\fIN\fR" 4.IX Item "#varN"Generates the value of \fIvar\fR, left justified to fill \fIN\fR spaces.Note that this means while you can have properties 'foo' and 'foo2',you cannot render 'foo2', but you could with 'foo2a'.  You would bewise not to rely on this behavior going forward ;\-).IP "\fB#\fR\fIVar\fR" 4.IX Item "#Var"This ucfirst form of #var generates a tag-value form of itself fordisplay; it converts '#Var' into a 'Var => #var' style, which is thenhandled as described above.  (Imp-note: #Vars cannot be used forconditional-fills, because the => #var transform is done after the checkfor #Var's value)..PPThe following variables are 'defined' by B::Concise; when they areused in a style, their respective values are plugged into therendering of each opcode..PPOnly some of these are used by the standard styles, the others areprovided for you to delve into optree mechanics, should you wish toadd a new style (see \*(L"add_style\*(R" below) that uses them.  You canalso add new ones using \*(L"add_callback\*(R"..IP "\fB#addr\fR" 4.IX Item "#addr"The address of the \s-1OP\s0, in hexadecimal..IP "\fB#arg\fR" 4.IX Item "#arg"The OP-specific information of the \s-1OP\s0 (such as the \s-1SV\s0 for an \s-1SVOP\s0, thenon-local exit pointers for a \s-1LOOP\s0, etc.) enclosed in parentheses..IP "\fB#class\fR" 4.IX Item "#class"The B\-determined class of the \s-1OP\s0, in all caps..IP "\fB#classsym\fR" 4.IX Item "#classsym"A single symbol abbreviating the class of the \s-1OP\s0..IP "\fB#coplabel\fR" 4.IX Item "#coplabel"The label of the statement or block the \s-1OP\s0 is the start of, if any..IP "\fB#exname\fR" 4.IX Item "#exname"The name of the \s-1OP\s0, or 'ex\-foo' if the \s-1OP\s0 is a null that used to be a foo..IP "\fB#extarg\fR" 4.IX Item "#extarg"The target of the \s-1OP\s0, or nothing for a nulled \s-1OP\s0.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -