【发布时间】:2013-08-13 07:04:48
【问题描述】:
我想知道如何在 C++ 和 Java 中做到这一点(编辑:我不是说同时。我问了两个类似的问题,“我如何在 C++ 中做到这一点?”和“如何做我用 Java 做这个?”)。
我想解析来自文件的输入并将 '(' 和 ')' 视为除空格之外的分隔符。但我也希望每次遇到 '(' 或 ')' 都被识别为一个单独的标记。所以例如在解析时
this contians(嵌套(括号))
我希望连续调用 next()(或 >>)给(每行一个)
This
contains
(
nested
(
parentheses
)
)
<end of input>
是否有内置此功能的解析器/扫描器?我知道 Java 的 Scanner 很强大,但据我所知,每次遇到下一个标记时,无法确定 哪个 分隔符匹配。
【问题讨论】:
-
把这个问题分成两个问题会更合适吗?一个用于 C++,一个用于 Java?
-
您可能想了解compiler compilers。例如,ANTLR 能够为 Java 和 C(当然可以在 C++ 中使用)创建解析器代码。
-
对不起,我不是同时的意思。我试图将两个类似的问题塞进一个:“我如何在 C++ 中做到这一点?”和“我如何在 Java 中做到这一点?”我会澄清的
-
如果这是 python,正确的工具是 shlex。它正是这样做的
标签: java c++ parsing delimiter parentheses