From d87455995bbc21c394c6671b36846de8b5aef19b Mon Sep 17 00:00:00 2001 From: Radon Rosborough Date: Mon, 5 Oct 2020 18:45:52 -0700 Subject: [PATCH] [#24] New language: Objective-C++ --- backend/src/langs.ts | 33 +++++++++++++++++++++++++++++ scripts/docker-install-phase3c.bash | 5 +++++ 2 files changed, 38 insertions(+) diff --git a/backend/src/langs.ts b/backend/src/langs.ts index 9ccacf7..a5d3883 100644 --- a/backend/src/langs.ts +++ b/backend/src/langs.ts @@ -2376,6 +2376,39 @@ int main() { }, template: `#import +int main() { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSLog(@"Hello, world!"); + [pool drain]; + return 0; +} +`, + skip: ["lsp"], + }, + "objectivec++": { + aliases: ["objc++", "objcpp", "objectivecpp"], + name: "Objective-C++", + main: "main.mm", + compile: "gcc $(gnustep-config --objc-flags) main.mm $(gnustep-config --base-libs) -o main", + run: "./main", + format: { + run: "clang-format --assume-filename=format.m", + input: `#import + +int main() { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSLog(@"Hello, world!"); + [pool drain]; + return 0; +} +`, + }, + lsp: { + setup: `(gnustep-config --objc-flags && gnustep-config --base-libs) | sed -E 's/\\s+/\\n/g' > compile_flags.txt`, + start: "clangd", + }, + template: `#import + int main() { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSLog(@"Hello, world!"); diff --git a/scripts/docker-install-phase3c.bash b/scripts/docker-install-phase3c.bash index e019d87..7ac9f09 100755 --- a/scripts/docker-install-phase3c.bash +++ b/scripts/docker-install-phase3c.bash @@ -58,6 +58,11 @@ make gcc gnustep-devel +Objective-C++ +gcc +gnustep-devel +gobjc++ + # OCaml ocaml opam