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

📄 msgheaderdiagram-4858.dot

📁 这是国外的resip协议栈
💻 DOT
字号:
digraph MsgHeaderScannerFSM {	node[shape=record		fontsize=8		fontname="Helvetica"	]	edge [ fontsize=6 fontname="Helvetica"]	graph [ ratio=0.8		fontsize=6 compound=true ]  MsgStart [ label = "0|MsgStart" ]    MsgStart -> MsgStart [label="TERM\nSentinel" ]    MsgStart -> ScanStatusLine [label="*\nStartText" ]    MsgStart -> ScanStatusLine [label="FName\nStartText" ]    MsgStart -> ScanStatusLine [label="WS\nStartText" ]    MsgStart -> ScanStatusLine [label="\":\"\nStartText" ]    MsgStart -> ScanStatusLine [label="\"\nStartText" ]    MsgStart -> ScanStatusLine [label="\"<\"\nStartText" ]    MsgStart -> ScanStatusLine [label="\">\"\nStartText" ]    MsgStart -> ScanStatusLine [label="\"\\\"\nStartText" ]    MsgStart -> ScanStatusLine [label="\",\"\nStartText" ]    MsgStart -> HalfLineBreakAtMsgStart [label="CR\nNone" ]  HalfLineBreakAtMsgStart [ label = "1|HalfLineBreakAtMsgStart" ]    HalfLineBreakAtMsgStart -> HalfLineBreakAtMsgStart [label="TERM\nSentinel" ]    HalfLineBreakAtMsgStart -> MsgStart [label="LF\nNone" ]  ScanStatusLine [ label = "2|ScanStatusLine" ]    ScanStatusLine -> ScanStatusLine [label="TERM\nSentinel" ]    ScanStatusLine -> HalfLineBreakAfterStatusLine [label="CR\nTermStatusLine" ]  HalfLineBreakAfterStatusLine [ label = "3|HalfLineBreakAfterStatusLine" ]    HalfLineBreakAfterStatusLine -> HalfLineBreakAfterStatusLine [label="TERM\nSentinel" ]    HalfLineBreakAfterStatusLine -> AfterLineBreakAfterStatusLine [label="LF\nNone" ]  AfterLineBreakAfterStatusLine [ label = "4|AfterLineBreakAfterStatusLine" ]    AfterLineBreakAfterStatusLine -> AfterLineBreakAfterStatusLine [label="TERM\nSentinel" ]    AfterLineBreakAfterStatusLine -> ScanFieldName [label="FName\nStartText" ]    AfterLineBreakAfterStatusLine -> HalfLineBreakAfterLineBreak [label="CR\nNone" ]  ScanFieldName [ label = "5|ScanFieldName" ]    ScanFieldName -> ScanFieldName [label="TERM\nSentinel" ]    ScanFieldName -> ScanWhiteSpaceAfter1FieldName [label="WS\nTermFieldName" ]    ScanFieldName -> ScanWhiteSpaceOr1Value [label="\":\"\nTermFieldName" ]  ScanWhiteSpaceAfter1FieldName [ label = "6|ScanWhiteSpaceAfter1FieldName" ]    ScanWhiteSpaceAfter1FieldName -> ScanWhiteSpaceAfter1FieldName [label="TERM\nSentinel" ]    ScanWhiteSpaceAfter1FieldName -> ScanWhiteSpaceOr1Value [label="\":\"\nNone" ]  ScanWhiteSpaceAfterNFieldName [ label = "7|ScanWhiteSpaceAfterNFieldName" ]    ScanWhiteSpaceAfterNFieldName -> ScanWhiteSpaceAfterNFieldName [label="TERM\nSentinel" ]    ScanWhiteSpaceAfterNFieldName -> ScanWhiteSpaceOrNValue [label="\":\"\nNone" ]  ScanWhiteSpaceOr1Value [ label = "8|ScanWhiteSpaceOr1Value" ]    ScanWhiteSpaceOr1Value -> ScanWhiteSpaceOr1Value [label="TERM\nSentinel" ]    ScanWhiteSpaceOr1Value -> Scan1Value [label="*\nStartText" ]    ScanWhiteSpaceOr1Value -> Scan1Value [label="FName\nStartText" ]    ScanWhiteSpaceOr1Value -> Scan1Value [label="\":\"\nStartText" ]    ScanWhiteSpaceOr1Value -> Scan1Value [label="\"\nStartText" ]    ScanWhiteSpaceOr1Value -> Scan1Value [label="\"<\"\nStartText" ]    ScanWhiteSpaceOr1Value -> Scan1Value [label="\">\"\nStartText" ]    ScanWhiteSpaceOr1Value -> Scan1Value [label="\"\\\"\nStartText" ]    ScanWhiteSpaceOr1Value -> Scan1Value [label="\",\"\nStartText" ]    ScanWhiteSpaceOr1Value -> HalfLineBreakInWhiteSpaceBefore1Value [label="CR\nNone" ]  ScanWhiteSpaceOrNValue [ label = "9|ScanWhiteSpaceOrNValue" ]    ScanWhiteSpaceOrNValue -> ScanWhiteSpaceOrNValue [label="TERM\nSentinel" ]    ScanWhiteSpaceOrNValue -> ScanNValue [label="*\nStartText" ]    ScanWhiteSpaceOrNValue -> ScanNValue [label="FName\nStartText" ]    ScanWhiteSpaceOrNValue -> ScanNValue [label="\":\"\nStartText" ]    ScanWhiteSpaceOrNValue -> ScanNValueInQuotes [label="\"\nStartText" ]    ScanWhiteSpaceOrNValue -> ScanNValueInAngles [label="\"<\"\nStartText" ]    ScanWhiteSpaceOrNValue -> ScanNValue [label="\">\"\nStartText" ]    ScanWhiteSpaceOrNValue -> ScanNValue [label="\"\\\"\nStartText" ]    ScanWhiteSpaceOrNValue -> HalfLineBreakInWhiteSpaceBeforeNValue [label="CR\nNone" ]  HalfLineBreakInWhiteSpaceBefore1Value [ label = "10|HalfLineBreakInWhiteSpaceBefore1Value" ]    HalfLineBreakInWhiteSpaceBefore1Value -> HalfLineBreakInWhiteSpaceBefore1Value [label="TERM\nSentinel" ]    HalfLineBreakInWhiteSpaceBefore1Value -> AfterLineBreakInWhiteSpaceBefore1Value [label="LF\nNone" ]  HalfLineBreakInWhiteSpaceBeforeNValue [ label = "11|HalfLineBreakInWhiteSpaceBeforeNValue" ]    HalfLineBreakInWhiteSpaceBeforeNValue -> HalfLineBreakInWhiteSpaceBeforeNValue [label="TERM\nSentinel" ]    HalfLineBreakInWhiteSpaceBeforeNValue -> AfterLineBreakInWhiteSpaceBeforeNValue [label="LF\nNone" ]  AfterLineBreakInWhiteSpaceBefore1Value [ label = "12|AfterLineBreakInWhiteSpaceBefore1Value" ]    AfterLineBreakInWhiteSpaceBefore1Value -> AfterLineBreakInWhiteSpaceBefore1Value [label="TERM\nSentinel" ]    AfterLineBreakInWhiteSpaceBefore1Value -> ScanFieldName [label="FName\nBeyondEmptyValue" ]    AfterLineBreakInWhiteSpaceBefore1Value -> ScanWhiteSpaceOr1Value [label="WS\nNone" ]    AfterLineBreakInWhiteSpaceBefore1Value -> HalfLineBreakAfterLineBreak [label="CR\nBeyondEmptyValue" ]  AfterLineBreakInWhiteSpaceBeforeNValue [ label = "13|AfterLineBreakInWhiteSpaceBeforeNValue" ]    AfterLineBreakInWhiteSpaceBeforeNValue -> AfterLineBreakInWhiteSpaceBeforeNValue [label="TERM\nSentinel" ]    AfterLineBreakInWhiteSpaceBeforeNValue -> ScanFieldName [label="FName\nBeyondEmptyValue" ]    AfterLineBreakInWhiteSpaceBeforeNValue -> ScanWhiteSpaceOrNValue [label="WS\nNone" ]    AfterLineBreakInWhiteSpaceBeforeNValue -> HalfLineBreakAfterLineBreak [label="CR\nBeyondEmptyValue" ]  Scan1Value [ label = "14|Scan1Value" ]    Scan1Value -> Scan1Value [label="TERM\nSentinel" ]    Scan1Value -> HalfLineBreakIn1Value [label="CR\nNone" ]  ScanNValue [ label = "15|ScanNValue" ]    ScanNValue -> ScanNValue [label="TERM\nSentinel" ]    ScanNValue -> ScanNValueInQuotes [label="\"\nNone" ]    ScanNValue -> ScanNValueInAngles [label="\"<\"\nNone" ]    ScanNValue -> ScanWhiteSpaceOrNValue [label="\",\"\nTermValue" ]    ScanNValue -> HalfLineBreakInNValue [label="CR\nNone" ]  HalfLineBreakIn1Value [ label = "16|HalfLineBreakIn1Value" ]    HalfLineBreakIn1Value -> HalfLineBreakIn1Value [label="TERM\nSentinel" ]    HalfLineBreakIn1Value -> AfterLineBreakIn1Value [label="LF\nNone" ]  HalfLineBreakInNValue [ label = "17|HalfLineBreakInNValue" ]    HalfLineBreakInNValue -> HalfLineBreakInNValue [label="TERM\nSentinel" ]    HalfLineBreakInNValue -> AfterLineBreakInNValue [label="LF\nNone" ]  AfterLineBreakIn1Value [ label = "18|AfterLineBreakIn1Value" ]    AfterLineBreakIn1Value -> AfterLineBreakIn1Value [label="TERM\nSentinel" ]    AfterLineBreakIn1Value -> ScanFieldName [label="FName\nTermValueAfterLineBreak" ]    AfterLineBreakIn1Value -> Scan1Value [label="WS\nNone" ]    AfterLineBreakIn1Value -> HalfLineBreakAfterLineBreak [label="CR\nTermValueAfterLineBreak" ]  AfterLineBreakInNValue [ label = "19|AfterLineBreakInNValue" ]    AfterLineBreakInNValue -> AfterLineBreakInNValue [label="TERM\nSentinel" ]    AfterLineBreakInNValue -> ScanFieldName [label="FName\nTermValueAfterLineBreak" ]    AfterLineBreakInNValue -> ScanNValue [label="WS\nNone" ]    AfterLineBreakInNValue -> HalfLineBreakAfterLineBreak [label="CR\nTermValueAfterLineBreak" ]  ScanNValueInQuotes [ label = "20|ScanNValueInQuotes" ]    ScanNValueInQuotes -> ScanNValueInQuotes [label="TERM\nSentinel" ]    ScanNValueInQuotes -> ScanNValue [label="\"\nNone" ]    ScanNValueInQuotes -> AfterEscCharInQuotesInNValue [label="\"\\\"\nNone" ]    ScanNValueInQuotes -> HalfLineBreakInQuotesInNValue [label="CR\nNone" ]  AfterEscCharInQuotesInNValue [ label = "21|AfterEscCharInQuotesInNValue" ]    AfterEscCharInQuotesInNValue -> AfterEscCharInQuotesInNValue [label="TERM\nSentinel" ]    AfterEscCharInQuotesInNValue -> ScanNValueInQuotes [label="*\nNone" ]    AfterEscCharInQuotesInNValue -> ScanNValueInQuotes [label="FName\nNone" ]    AfterEscCharInQuotesInNValue -> ScanNValueInQuotes [label="WS\nNone" ]    AfterEscCharInQuotesInNValue -> ScanNValueInQuotes [label="\":\"\nNone" ]    AfterEscCharInQuotesInNValue -> ScanNValueInQuotes [label="\"\nNone" ]    AfterEscCharInQuotesInNValue -> ScanNValueInQuotes [label="\"<\"\nNone" ]    AfterEscCharInQuotesInNValue -> ScanNValueInQuotes [label="\">\"\nNone" ]    AfterEscCharInQuotesInNValue -> ScanNValueInQuotes [label="\"\\\"\nNone" ]    AfterEscCharInQuotesInNValue -> ScanNValueInQuotes [label="\",\"\nNone" ]  HalfLineBreakInQuotesInNValue [ label = "22|HalfLineBreakInQuotesInNValue" ]    HalfLineBreakInQuotesInNValue -> HalfLineBreakInQuotesInNValue [label="TERM\nSentinel" ]    HalfLineBreakInQuotesInNValue -> AfterLineBreakInQuotesInNValue [label="LF\nNone" ]  AfterLineBreakInQuotesInNValue [ label = "23|AfterLineBreakInQuotesInNValue" ]    AfterLineBreakInQuotesInNValue -> AfterLineBreakInQuotesInNValue [label="TERM\nSentinel" ]    AfterLineBreakInQuotesInNValue -> ScanNValueInQuotes [label="WS\nNone" ]  ScanNValueInAngles [ label = "24|ScanNValueInAngles" ]    ScanNValueInAngles -> ScanNValueInAngles [label="TERM\nSentinel" ]    ScanNValueInAngles -> ScanNValue [label="\">\"\nNone" ]    ScanNValueInAngles -> HalfLineBreakInAnglesInNValue [label="CR\nNone" ]  HalfLineBreakInAnglesInNValue [ label = "25|HalfLineBreakInAnglesInNValue" ]    HalfLineBreakInAnglesInNValue -> HalfLineBreakInAnglesInNValue [label="TERM\nSentinel" ]    HalfLineBreakInAnglesInNValue -> AfterLineBreakInAnglesInNValue [label="LF\nNone" ]  AfterLineBreakInAnglesInNValue [ label = "26|AfterLineBreakInAnglesInNValue" ]    AfterLineBreakInAnglesInNValue -> AfterLineBreakInAnglesInNValue [label="TERM\nSentinel" ]    AfterLineBreakInAnglesInNValue -> ScanNValueInAngles [label="WS\nNone" ]  HalfLineBreakAfterLineBreak [ label = "27|HalfLineBreakAfterLineBreak" ]    HalfLineBreakAfterLineBreak -> HalfLineBreakAfterLineBreak [label="TERM\nSentinel" ]    HalfLineBreakAfterLineBreak -> MsgStart [label="LF\nEndHeader" ]}

⌨️ 快捷键说明

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