cppsp is a transpiled script-like language. Its compiler:cppsp_compiler is a kind of source-to-source compiler.

Download the cppsp_compiler.exe or compiler the sourcecode by yourself.
Requirement:prepare your own c++ compiler and set it's folder to environment path.
Optional: put the folder path of exe to environment.

Use cmd or other console to compiler .cppsp file: cppsp_compiler(if not in environment path:.\cppsp_compiler.exe or c:...\cppsp_compiler.exe) script.cppsp.
Setting c++ include/lib folder by .ini file include.ini:C:...\include1,c:...\include2 lib.ini:C:...\lib1,c:...\lib2.
You can rename cppsp_compiler.exe(or cppsp_compiler) to any name you like to change compile command like:cppsp、abcdef....

Official repo on github:
https://github.com/user19870/cppsp

r/cppsp:
https://www.reddit.com/r/cppsp/

Features

  • #useclang or #usegcc : use clang++ or g++ compile command
  • @command("..."): add command when compile like:-Os、-m64
  • #overwrite:make @command() overwrite g++ .... or clang++ compile command like @command("g++ -Os -m64 -nostdlib -shared -o dll.dll dll.cpp") and add "*/" after int main(){..} also add "/*" in front of int main(){..}
  • #skipcompile : skip g++/clang++ compile and directly run output
  • import :import header in c++ and accept import iostream,x,y,.....
  • @function<<...>>: inject everything(void()、int()、bool()、even #define and using namespace) in <<...>> to the space under #include above int main().Better not put any word, symbol or blanks but enalbe "enter" or nothing after ">>" to make difference between operation like a>>b and <<....>>
  • @inject(...) :inject everything in (...) to int main(){...} ----@inject(....)and @inject("....") are both legal. @inject(....) belonging to line ast and @inject("....") belonging to token ast but @inject(....) will be transpiled before @inject("....") and any keyword belonging to token ast.)
  • print(): print content to console like print("12\n"," ",1," ",2.1,true,false," ")
  • input(): input data to variables
  • //:comment
  • var.....type: declare variables with/without values. Support multi variables and type can be written as int/float/char/string/bool. <{1+1}> is a value but 1+1 not(it's expression)
  • if/else/else if(...){...}:similar to "if/else/else if" in c++ but enable syntax: if(input(x)>1). Can write cppsp keywords and operation( =,+,-,*,/,++....) in {...}
  • for(...){...}:similae to "for" in c++ like for( type i=0,i<10,i++), for(type i=0,j=10;i<10&&j>0;i++,j++) or for(type i:x) . Can write cppsp keywords and operation( =,+,-,*,/,++....) in {...}
  • function f()...:function f() type {...return...} will define a function with type, function f(){...} will define a void function,function f() will declare a void function, function f(){...return...} will define a function with auto in c++.
  • struct S{...} : define a structure and the name of structure will become a type ,so can use something like var....S

Project Activity

See All Activity >

Follow cppsp

cppsp Web Site

Other Useful Business Software
Enterprise-grade ITSM, for every business Icon
Enterprise-grade ITSM, for every business

Give your IT, operations, and business teams the ability to deliver exceptional services—without the complexity.

Freshservice is an intuitive, AI-powered platform that helps IT, operations, and business teams deliver exceptional service without the usual complexity. Automate repetitive tasks, resolve issues faster, and provide seamless support across the organization. From managing incidents and assets to driving smarter decisions, Freshservice makes it easy to stay efficient and scale with confidence.
Try it Free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of cppsp!

Additional Project Details

Registered

2025-12-21