相关疑难解决方法(0)

使用Perl 6从.bib文件中提取

在LaTeX中写论文的时候,我有这个.bib文件供参考管理:

@article{garg2017patch,
  title={Patch testing in patients with suspected cosmetic dermatitis: A retrospective study},
  author={Garg, Taru and Agarwal, Soumya and Chander, Ram and Singh, Aashim and Yadav, Pravesh},
  journal={Journal of Cosmetic Dermatology},
  year={2017},
  publisher={Wiley Online Library}
}

@article{hauso2008neuroendocrine,
  title={Neuroendocrine tumor epidemiology},
  author={Hauso, Oyvind and Gustafsson, Bjorn I and Kidd, Mark and Waldum, Helge L and Drozdov, Ignat and Chan, Anthony KC and Modlin, Irvin M},
  journal={Cancer},
  volume={113},
  number={10},
  pages={2655--2664},
  year={2008},
  publisher={Wiley Online Library}
}

@article{siperstein1997laparoscopic,
  title={Laparoscopic thermal ablation of …
Run Code Online (Sandbox Code Playgroud)

latex bibtex tex perl6 raku

17
推荐指数
1
解决办法
923
查看次数

如何改进语法中的错误报告?

如果语法不匹配,有没有办法让Perl 6生成错误消息?或者至少返回它处理的最后一个数据的位置?如果从解析器获得的所有内容都是"不匹配",则很难修复语法错误.

grammar parsing perl6 raku

12
推荐指数
1
解决办法
560
查看次数

如何在Perl6中实现递归语法

我正在尝试使用Perl6语法实现Markdown解析器并且遇到了blockquotes.块引用段落不能嵌套括号来表示,因为它是专门格式化行的列表.但从语义上讲,它是一个嵌套的降价.

基本上,这一切都归结为以下定义:

    token mdBlockquote {
        <mdBQLine>+ {
            my $quoted = [~] $m<mdBQLine>.map: { $_<mdBQLineBody> };
        }
    }
Run Code Online (Sandbox Code Playgroud)

mdBQLine令牌的实际实现与此无关.唯一需要注意的是,mdBQLineBody密钥包含>已经剥离的实际引用行.毕竟,对于一个块:

> # quote1
> quote2
>
> quote3
quote3.1
Run Code Online (Sandbox Code Playgroud)

$quoted标将包含:

# quote1
quote2

quote3
quote3.1
Run Code Online (Sandbox Code Playgroud)

现在,重点是解析上述数据并将其注入Match对象$/.这就是我完全陷入困境的地方.最明显的解决方案:

    token mdBlockquote {
        <mdBQLine>+ {
            my $quoted = [~] $m<mdBQLine>.map: { $_<mdBQLineBody> };
            $<mdBQParsed> = self.parse( $quoted, actions => self.actions );
        }
    }
Run Code Online (Sandbox Code Playgroud)

一次失败有两个原因:第一,$/是一个只读对象; 第二,.parse有效地修改它使得无法向原始树中注入任何东西.

是否有任何解决方案,然后分析解析数据,提取和重新解析blockquotes,重复......?

perl6 raku

10
推荐指数
2
解决办法
248
查看次数

Perl 6中的递归正则表达式?

我一直试图弄清楚如何在Perl 6中做一个递归的正则表达式.对于一个玩具示例,一个平衡的括号匹配器,它将匹配((())())内部(((((())()).

  • PCRE示例:/\((?R)?\)/

  • Onigmo示例:(?<paren>\(\g<paren>*\))

我以为这样做会:

my regex paren {
  '(' ~ ')' <paren>*
}
Run Code Online (Sandbox Code Playgroud)

或者更简单

my regex paren {
  '(' <paren>* ')'
}
Run Code Online (Sandbox Code Playgroud)

但那失败了

No such method 'paren' for invocant of type 'Match'
in regex paren at ...
Run Code Online (Sandbox Code Playgroud)

regex perl6

10
推荐指数
1
解决办法
196
查看次数

正则表达式/令牌/规则匹配嵌套的花括号?

我需要匹配key = valueBibTeX 文件中对的值,这些文件可以包含任意嵌套的大括号,由大括号分隔。我最多匹配两个深嵌套的花括号,就像{some {stuff} like {this}}kludgey一样:

    token brace-value {
    '{' <-[{}]>* ['{' <-[}]>* '}' <-[{}]>* ]* '}'
    }
Run Code Online (Sandbox Code Playgroud)

我对再往下一层的想法感到不寒而栗……但是正确解析我的 BibTeX 内容至少需要三层深。

是的,我知道周围有 BibTeX 解析器,但我需要获取完整的条目以进行进一步处理,同时查看几个键。我的*.bib文件相当温和(我不介意手动处理一些杂散条目),问题是我有很多文件,并且有很多重叠。但是一些“相同”的条目有不同的键,或者额外的数据。我想将它们合并成几个主文件(BibTeX 背后的整个想法,对吧?)。如果bibtool给出一个没有重复(ha!)大约 20,000 行的文件,手工就不好玩了...

grammar raku

10
推荐指数
2
解决办法
250
查看次数

标签 统计

perl6 ×4

raku ×4

grammar ×2

bibtex ×1

latex ×1

parsing ×1

regex ×1

tex ×1