小编Pau*_*gor的帖子

Boost :: Spirit简单的语法示例

我正在阅读Boost Spirit(和Boost Fusion)教程(版本1.48.0).我一直在玩玩具员工的例子.链接到源是这里:

http://www.boost.org/doc/libs/1_48_0/libs/spirit/example/qi/employee.cpp

这是示例的语法:

employee_parser() : employee_parser::base_type(start)
    {
        using qi::int_;
        using qi::lit;
        using qi::double_;
        using qi::lexeme;
        using ascii::char_;

        quoted_string %= lexeme['"' >> +(char_ - '"') >> '"'];

        start %=
            lit("employee")
            >> '{'
            >>  int_ >> ','
            >>  quoted_string >> ','
            >>  quoted_string >> ','
            >>  double_
            >>  '}'
            ;
    }

    qi::rule<Iterator, std::string(), ascii::space_type> quoted_string;
    qi::rule<Iterator, employee(), ascii::space_type> start;
Run Code Online (Sandbox Code Playgroud)

我的修改删除了引号的处理,只解析分隔符之间的任何字符,并将其分配给解析器映射到的结构.

        //quoted_string %= lexeme['"' >> +(char_ - '"') >> '"'];
        start %=
            lit("employee")
            >> '{'
            >>  int_ >> ','
            >>  +(char_) …
Run Code Online (Sandbox Code Playgroud)

c++ parsing boost boost-spirit boost-spirit-qi

6
推荐指数
1
解决办法
9544
查看次数

r wordcloud外部ttf vfont无法识别

我已经安装了'extrafont'软件包,以便通过ttf_import()方法安装外部字体库Duality.但是,通过wordcloud方法指定字体时,我收到以下错误:

安装命令:

# Assuming the font file, DUALITY_.ttf, is in the working directory (see link to font above)
font_import(".",FALSE,pattern="DUALITY")
Run Code Online (Sandbox Code Playgroud)

Wordcloud命令:

wordcloud(ap.d$word, ap.d$freq, scale=c(8,2), min.freq=10, vfont=c("Duality","plain"),
      random.order=FALSE, rot.per=0, use.r.layout=FALSE, colors=pal2, fixed.asp=FALSE)
Run Code Online (Sandbox Code Playgroud)

输出:

Error in strwidth(words[i], cex = size[i], ...) : 
  invalid 'vfont' value [typeface -2147483648]
Run Code Online (Sandbox Code Playgroud)

为了验证确实安装了字体,我发出了以下命令

> choose_font("Duality")
[1] "Duality"
> fonts()
....[49] "Waree"                    "Duality"    
Run Code Online (Sandbox Code Playgroud)

为什么wordcloud的vfont参数看不到Duality字体?如何让它对开罗(默认渲染器)可见.TIA!

r truetype word-cloud

6
推荐指数
1
解决办法
1887
查看次数

标签 统计

boost ×1

boost-spirit ×1

boost-spirit-qi ×1

c++ ×1

parsing ×1

r ×1

truetype ×1

word-cloud ×1