是否可以使用Graphviz绘制ASCII图?
像这样的东西:
digraph
{
this -> is
this -> a
a -> test
}
Run Code Online (Sandbox Code Playgroud)
给出以下图片:
图http://img15.imageshack.us/img15/6985/asciia.png
但我想获得ASCII表示:
this
/ \
is a
|
test
Run Code Online (Sandbox Code Playgroud)
也许你知道其他工具可以理解点文件格式并可以绘制ascii图表吗?
我正在尝试用C++创建一个字符串和方法的映射,但我不知道该怎么做.我想做那样的事情(伪代码):
map<string, method> mapping =
{
"sin", Math::sinFunc,
"cos", Math::cosFunc,
...
};
...
string &function;
handler = mapping.find(function);
int result;
if (handler != NULL)
result = (int) handler(20);
Run Code Online (Sandbox Code Playgroud)
说实话,我不知道在C++中是否可行.我想有一个字符串,方法的地图,并能够在我的映射中搜索功能.如果给定函数的字符串名称,那么我想用给定的param调用它.
让我们说我有文件:
库:
程序:
有没有办法,创建Makefile只会编译从上次编译修改的*.cpp?
目前我有类似的东西:
SRCS = one.cpp two.cpp three.cpp
OBJS = $(SRCS:.cpp=.o)
all: $(OBJS) program
.cpp.o:
g++ -Wall -c $<
program:
g++ -Wall $(OBJS) program.cpp -o program
clean:
rm -f $(OBJS) program
Run Code Online (Sandbox Code Playgroud)
我工作正常,但是当我编译我的程序然后更改two.cpp或two.h时我需要首先运行"make clean",因为当我第二次运行"make"时,我得到:
Nothing to be done for 'all'.
Run Code Online (Sandbox Code Playgroud)
我想以这种方式更改我的Makefile,它会识别我的更改并重新编译该文件及其依赖项(如果one.cpp使用来自two.cpp的代码,这些代码已被修改,两个文件都应该重新编译).
所以如果我修改two.cpp,make应该这样做:
g++ -Wall -c two.cpp
g++ -Wall $(OBJS) program.cpp -o program
Run Code Online (Sandbox Code Playgroud)
但是如果one.cpp使用了被修改的two.cpp中的代码,那么请执行以下操作:
g++ -Wall -c one.cpp
g++ -Wall -c two.cpp
g++ -Wall $(OBJS) program.cpp -o program
Run Code Online (Sandbox Code Playgroud) 我想使用 bison/flex创建简单的 xml 解析器。我不需要验证、注释、参数,只需要<tag>value</tag>,其中值可以是数字、字符串或其他<tag>value</tag>。
例如:
<div>
<mul>
<num>20</num>
<add>
<num>1</num>
<num>5</num>
</add>
</mul>
<id>test</id>
</div>
Run Code Online (Sandbox Code Playgroud)
如果有帮助,我知道可能出现的所有标签的名称。我知道给定标签可以容纳多少个子标签。是否可以创建可以执行以下操作的野牛解析器:
- new Tag("num", 1) // tag1
- new Tag("num", 5) // tag2
- new Tag("add", tag1, tag2) // tag3
- new Tag("num", 20) // tag4
- new Tag("mul", tag4, tag3)
...
- root = top_tag
Run Code Online (Sandbox Code Playgroud)
标签和子标签数量:
你能帮我语法来创建上面给出的 …
ascii ×1
bison ×1
c++ ×1
flex-lexer ×1
gnu-make ×1
graphviz ×1
lexer ×1
makefile ×1
mapping ×1
xml-parsing ×1