边缘上的Rank属性具有五个值"same","min","source","max","sink".除了"相同",我不知道何时使用其他值.
min
\begin{dotpic}
rankdir=LR;
size="7,5";
node[shape=circle];
C->A;
{rank=min;A;B}
B->D
A->B;
\end{dotpic}
max
\begin{dotpic}
rankdir=LR;
size="7,5";
node[shape=circle];
C->A;
{rank=max;A;B}
B->D
A->B;
\end{dotpic}
source
\begin{dotpic}
rankdir=LR;
size="7,5";
node[shape=circle];
C->A;
{rank=source;A;B}
B->D
A->B;
\end{dotpic}
sink
\begin{dotpic}
rankdir=LR;
size="7,5";
node[shape=circle];
C->A;
{rank=sink;A;B}
B->D
A->B;
\end{dotpic}
Run Code Online (Sandbox Code Playgroud)
通过对我的vim环境的测试,我可以发现这些值存在一些差异.但不知道它们到底是什么.
我是emacs cedet用户.我得到了cedet的大力帮助.
但是,我在cedet中发现了一些错误#ifdef处理错误.不确定它是来自cedet内部还是我的错误配置.我引用了Curl中发生此问题的一些代码.
#ifdef CURL_DO_LINEEND_CONV
if((data->set.crlf) || (data->set.prefer_ascii)) {
#else
if(data->set.crlf) {
#endif /* CURL_DO_LINEEND_CONV */
endofline_native = "\n";
Run Code Online (Sandbox Code Playgroud)
使用此代码,必须存在一些错误括号匹配.因为我使用(eassist-list-methods)或其他cedet-semantic函数(跳转到定义)时出错.
我很容易猜到这可能来自#ifdef .. #endif block中的两个大括号.我承认这些是这样的.
#ifdef CURL_DO_LINEEND_CONV
if((data->set.crlf) || (data->set.prefer_ascii))
#else
if(data->set.crlf)
#endif /* CURL_DO_LINEEND_CONV */
{
endofline_native = "\n";
Run Code Online (Sandbox Code Playgroud)
在此之后,cedet语义功能运行良好.
对此有何想法?它是否来自cedet解析器问题?
如果有一点我必须在cedet配置,你能给我一些见解吗?
谢谢