小编Cal*_*ter的帖子

是否有类似Awk或Lisp的编程语言可以处理s表达式流?

我最近在KiCad中创建了一些PCB封装,它们存储在s-expression文件中,其数据如下所示:

(fp_text user %R (at 0 5.08) (layer F.Fab)
  (effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -27.04996 -3.986) (end -27.24996 -3.786) (layer F.Fab) (width 0.1))
(pad "" np_thru_hole circle (at 35.56 0) (size 3.175 3.175) (drill 3.175) (layers *.Cu *.Mask)
  (clearance 1.5875))
(pad 96 smd rect (at 1.25 3.08473) (size 0.29972 1.45034) (layers F.Cu F.Paste F.Mask)
  (clearance 0.09906))
Run Code Online (Sandbox Code Playgroud)

我希望能够编写shell one-liners来有效地编辑多个参数.我通常会使用Awk这样的东西,但是s表达式的递归性质使它不适合这项任务.我想知道是否存在一种带有解释器的编程语言,用于处理管道数据并且可以本地处理s表达式.也许Lisp的数据驱动方言会这样做,但我不知道在哪里看.

总之,我希望能够以类似于Awk允许我逐行处理数据列的方式快速编辑s表达式文件; 仅在s表达式的情况下,处理将逐级执行.

例如:发现所有的的pad类型的表达式smd(size 0.29972 1.45034),并重新编号基于其位置每一个.

lisp awk pipe s-expression

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

Makefile链接:对_exit的未定义引用

我一直在尝试使用ARM mbed库创建一个组织整齐的makefile项目模板。我已经解决了一些与头文件路径有关的问题(请参阅此文章)。但是,现在链接器出现问题。我的目标是在src中具有源和标头,在obj中具有目标文件,并在debugrelease中具有最终的二进制文件。

这是我得到的错误...

make
arm-none-eabi-g++  -DTARGET_M4 -DMBED_BUILD_TIMESTAMP=1453683815.81 -DTOOLCHAIN_GCC_ARM -DTOOLCHAIN_GCC -DTARGET_RTOS_M4_M7 -DTARGET_FF_MORPHO -DTARGET_CORTEX_M -D__FPU_PRESENT=1 -DTARGET_FF_ARDUINO -DTARGET_STM32F446RE -DTARGET_NUCLEO_F446RE -D__MBED__=1 -DTARGET_STM -DTARGET_STM32F4 -D__CORTEX_M4 -DARM_MATH_CM4 -std=c++98 -fno-rtti -I lib/ -I lib/mbed/ -I lib/mbed/TARGET_NUCLEO_F446RE/ -I lib/mbed/TARGET_NUCLEO_F446RE/TARGET_STM/ -I lib/mbed/TARGET_NUCLEO_F446RE/TARGET_STM/TARGET_STM32F4/ -I lib/mbed/TARGET_NUCLEO_F446RE/TOOLCHAIN_GCC_ARM/ -I lib/mbed/TARGET_NUCLEO_F446RE/TARGET_STM/TARGET_STM32F4/TARGET_NUCLEO_F446RE/ -o obj/main.o src/main.cc
/usr/lib/gcc/arm-none-eabi/6.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text.exit+0x2c): undefined reference to `_exit'
collect2: error: ld returned 1 exit status
make: *** [makefile:54: obj/main.o] Error 1
Run Code Online (Sandbox Code Playgroud)

这是我的makefile。我已经指出问题可能在哪里,但是我不确定。#项目参数PROJECT = Nucleo_blink OBJECTS = obj / main.o …

arm makefile stm32

3
推荐指数
3
解决办法
6756
查看次数

标签 统计

arm ×1

awk ×1

lisp ×1

makefile ×1

pipe ×1

s-expression ×1

stm32 ×1