【LaTex树状图】LaTex画树状图_编译原理语法树_直角分叉_Forking links

语法树语法树

过程

使用Overleaf在线编辑LaTex,由于使用汉字ctex包,需在overleaf中将编译器换成XeLaTex(界面左上角Menu→Compiler→XeLaTex)。
详细语法参考VisualTikZ.pdf
Forking links

题目

2-6 设已给文法G[<程序>]:
<程序>→<分程序>|<复合语句>
<分程序>→<无标号分程序>|<标号>:<分程序>
<复合语句>→<无标号复合语句>|<标号>:<复合语句>
<无标号分程序>→<分程序首部>;<复合尾部>
<无标号复合语句>→begin<复合尾部>
<分程序首部>→begin<说明>|<分程序首部>;<说明>
<复合尾部>→<语句>end|<语句>;<复合尾部>
<说明>→d
<语句>→s
<标号>→L
(1)给出以下句子
L:L:begin d;d;s;s end
的最左推导和最右推导。
(2)画出上述句子的语法树。

LaTex代码

\documentclass{standalone}
\usepackage[UTF8]{ctex} %中文
\usepackage{tikz} %LaTex tikz包
\usetikzlibrary{trees}
\begin{document}
  \begin{tikzpicture}[level distance=10em, 
    T/.style={edge from parent fork #1, grow=#1, level distance=4em, sibling distance=4em, -}]
    \node {<程序>}
    [T=down]
    child{node{<分程序>}
        child{node{<标号>}
            child{node{L}}
            } 
        child{node{:}} 
        child{node{<分程序>}
            child{node{<标号>}
                child{node{L}}
                } 
            child{node{:}} 
            child{node{<分程序>}
                child{node{<无标号分程序>}[sibling distance=7em]
                    child{node{<分程序首部>}[sibling distance=4em]
                        child{node{<分程序首部>}
                            child{node{begin}}
                            child{node{<说明>}
                                child{node{d}}
                            }
                            }
                        child{node{;}}
                        child{node{<说明>}
                            child{node{d}}
                            }
                        }
                    child{node{;}}
                    child{node{<复合尾部>}[sibling distance=4em]
                        child{node{<语句>}
                                child{node{s}}
                            }
                        child{node{;}}
                        child{node{<复合尾部>}
                            child{node{<语句>}
                                child{node{s}}
                                }
                            child{node{end}}
                            }
                        }
                    }
                }
            }
        };
  \end{tikzpicture} 
\end{document}

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值