Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macros 使用M4,如何从字符串中提取代码并增加缩进?_Macros_M4 - Fatal编程技术网

Macros 使用M4,如何从字符串中提取代码并增加缩进?

Macros 使用M4,如何从字符串中提取代码并增加缩进?,macros,m4,Macros,M4,我需要编写一个M4宏,在大括号之间提取+转换代码 我想改变 { import math a_list = [1, 4, 9, 16] if val: print([math.sqrt(i) for i in a_list]) else: print("val is False") print("bye bye")

我需要编写一个M4宏,在大括号之间提取+转换代码

我想改变

         {
        import math
        a_list = [1, 4, 9, 16]
        if val:
            print([math.sqrt(i) for i in a_list])
        else:
            print("val is False")
        print("bye bye")
     }

导入数学
a_list=[1,4,9,16]
如果val:
打印([math.sqrt(i)代表列表中的i])
其他:
打印(“val为假”)
打印(“再见”)
宏必须修剪第一个{之前和最后一个}之后的空格。 因为这是python代码,所以在大括号的旁边必须保留相对缩进。 因为宏的输出将在某处输出,所以需要一定程度的缩进。 宏还应该能够添加额外的缩进(=一些空格),例如作为参数给定。 项目已经在使用m4sugar,因此引号是[和]


谢谢。

宏的参数到底是什么?例如,在开始的支架之前或结束的支架之后会有东西吗?