有没有办法去掉C代码中多余的大括号?
我正在解析和重新生成代码。我的语法将有没有办法去掉C代码中多余的大括号?,c,python-3.x,parsing,logic,braces,C,Python 3.x,Parsing,Logic,Braces,我正在解析和重新生成代码。我的语法将else if转换为else{if,并自动为else if的主体添加{和} #include<stdio.h> int main() { int choice = 1; switch (choice) { case 0: if (choice == 0) { { int option = 10; if (option < 11) { {
else if
转换为else{if
,并自动为else if
的主体添加{
和}
#include<stdio.h>
int main()
{
int choice = 1;
switch (choice) {
case 0:
if (choice == 0) { {
int option = 10;
if (option < 11) { {
if (option < 10) { {
int temp;
}} else {
if (option == 10) { {
int temp1;
}} else {
if (option ==
90) { {
int temp2;
}}
}}}} else {
if (option == 20) { {
int temp3;
}}
}}}
break;
case 1:
if (choice == 1) { {
int temp4;
}}
break;
default:{ {
int temp5;
}} break;
}
return 0;
}
#包括
int main()
{
int-choice=1;
开关(选择){
案例0:
如果(选项==0){{
int选项=10;
如果(选项<11){{
如果(选项<10){{
内部温度;
}}否则{
如果(选项==10){{
int temp1;
}}否则{
如果(选项==
90) { {
int temp2;
}}
}}}}否则{
如果(选项==20){{
int temp3;
}}
}}}
打破
案例1:
如果(选项==1){{
int temp4;
}}
打破
默认值:{{
int temp5;
}}中断;
}
返回0;
}
如何从这段代码中删除多余的花括号,使逻辑保持不变?有什么工具可以做到这一点,还是有一些python代码?
我曾尝试编写python代码来实现这一点,但我发现很难删除正确数量的额外右括号
}
,从而使C代码的逻辑不受影响。这不是一件小事。您可能需要一个完整的C解析器才能正确地完成它。如果我想这样做,我会使用现有解析器中的代码生成一棵树。完成后,删除大括号就相当简单了。您需要一个解析器,但如果目标只是处理冗余大括号,那么解析器可能会相当简单。在我看来,不需要生成树。在这种情况下,您似乎可以重复地将{{
替换为{
,将}
替换为}
花括号
从未听过它们这样叫过!我喜欢!(我通常称之为花括号
)这个问题被标记为python有什么原因吗?