Я хотел бы знать, если есть эквивалент интерпретатора Python для C / C ++:
$ python
Python 2.7.3 (default, Mar 13 2014, 11:03:55)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> " test\n\n ".strip()
'test'
>>> import re
>>> re.search('([\d\.]*).tgz', 'package-2.1.5.tgz').group(1)
'2.1.5'
До сих пор я всегда использовал для этого фиктивный скрипт bash. Он не является интерактивным, но он не позволяет создать файл C ++ с main и т. Д., Чтобы проверить результат одной или нескольких команд.
Я почти уверен, что мы можем сделать это как-то в gdb или eclipse, или он существует где-то еще, скрытым в пакете, поэтому, если вы знаете интересные вещи по этому вопросу, я был бы рад узнать об этом. Спасибо и хорошего дня.
$ cat cInterpreter.sh
#!/bin/bash
function usage {
cat <<EOF
USAGE:
$0 '<semi-colon separated includes>' '<semi-colon separated commands>'
EXAMPLE:
$0 'arpa/inet.h' 'printf("%04x\n", htons(5294));'
EOF
}
if [ $# -ne 2 ] || [ "$1" = "--help" ]; then
usage
exit 0
fi
includes=$1
commands=$2
g++ -Wall -x c++ - -o /tmp/cInterpreter.bin <<EOF &&
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
$(tr ';' '\n' <<< $includes | xargs -I{} echo "#include <{}>")
int main() {
$commands;
return 0;
}
EOF
/tmp/cInterpreter.bin
$ cInterpreter.sh 'arpa/inet.h' 'printf("%04x\n", htons(5294));'
ae14
Вы цепляетесь, это не идеально, но это реплик C ++
http://blog.coldflake.com/posts/On-the-fly-C++/
git clone http://root.cern.ch/git/llvm.git src
cd src
git checkout cling-patches
cd tools
git clone http://root.cern.ch/git/cling.git
git clone http://root.cern.ch/git/clang.git
cd clang
git checkout cling-patches
cd ../..
./configure --enable-cxx11
make
sudo make install
$ cling -Wc++11-extensions -std=c++11
****************** CLING ******************
* Type C++ code and press enter to run it *
* Type .q to exit *
*******************************************
[cling]$ #include <arpa/inet.h>
[cling]$ htons(5294)
(uint16_t) 44564
[cling]$ printf("%04x\n", htons(5294))
input_line_5:2:2: error: use of undeclared identifier 'printf'
printf("%04x\n", htons(5294))
^
[cling]$ #include <stdio.h>
[cling]$ printf("%04x\n", htons(5294))
ae14
Tiny C Компилятор (http://bellard.org/tcc) поддерживает режим переводчика. Хотя это только С.
RCRL (read-compile-run-loop) является альтернативой цепочке для C ++.