From 058ef1dc9540491d20cc3ad4a3fa56b19877c16c Mon Sep 17 00:00:00 2001 From: Sarita Singh Date: Tue, 2 Nov 2021 23:26:48 +0530 Subject: [PATCH 1/4] Update description and add badges Signed-off-by: Sarita Singh --- .gitignore | 3 +- README.md | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 82 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index ac88e2a..5d0db76 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ /cpm_modules .DS_Store .idea -.cache \ No newline at end of file +.cache +./share/jupyter/kernels/xbasic/kernel.json \ No newline at end of file diff --git a/README.md b/README.md index 6e526d8..e7bb283 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,82 @@ -# xeus-BASIC + +```scala + `7MM***Yy. db .M***by. `7MMF' .g8***bg. + MM Yb ;MM: ,MI `Y MM .dP' `M + `7M' `MF' MM .P ,V^MM. `MMb. MM dM' ` + `VA ,V' MMooon* ,M `MM `YMMNq. MM MM + XMX MM `Y. AbmmmqMA . `MM MM MM. + ,V' VA. MM ,9 A' VML Mb dM MM `Mb. .' + .AM. .MA..JMMonald'AMA. .AMMA.`*Ybmmd* .JMML. `*bMond^ + +``` + +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/avinal/xeus-basic/HEAD) [![GitHub license](https://img.shields.io/github/license/avinal/xeus-basic)](https://github.com/avinal/xeus-basic/blob/master/LICENSE) Jupyter Kernel for BASIC language + + +## Steps to run the project: +**You can directly click on *launch binder* badge above to use this kernel right in your browser.*** + +* Clone this repository. + +* Download miniconda [link](https://conda.io/projects/conda/en/latest/user-guide/install/linux.html#installing-on-linux) + +* Create a virual env +``` bash + conda create -n vbasic +``` +* Activate virtual environment that you created + +```bash + conda activate vbasic +``` +* Install dependencies + +```bash + conda install -c conda-forge jupyter xeus xtl nlohmann_json cppzmq +``` +* Make a build directory to store all the build files + +```bash + mkdir build && cd build +``` + +* Configure CMake + +```bash + cmake .. -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX +``` + +* Build the project + +```bash + make +``` + +* Install application + +```bash + make install +``` + +* Launch Jupyter Notebook in the browser + +```bash + jupyter notebook +``` + +* Launch Jupyter Notebook in the terminal + +```bash + jupyter console --kernel=xbasic +``` + +## Created By + +- [Sarita Singh](https://github.com/itssingh) +- [Avinal Kumar](https://github.com/avinal) + +## Acknowledgement + +The BASIC language parser used in this project is a modified version of the [basic](https://github.com/nanoflite/basic) project created by [Johan Van den Brande](https://github.com/nanoflite). From 61743fda3efc6b421d1ed0abddfea1d5d0ad79ef Mon Sep 17 00:00:00 2001 From: Avinal Kumar Date: Tue, 2 Nov 2021 23:29:32 +0530 Subject: [PATCH 2/4] Reformat and add copyright headers Signed-off-by: Avinal Kumar Co-authored-by: Sarita Singh --- CMakeLists.txt | 6 +++ include/xbasic/xbasic_interpreter.hpp | 9 ++++ libs/basic/CMakeLists.txt | 14 ++--- libs/basic/main.cc | 74 +-------------------------- src/main.cc | 9 ++++ src/xbasic_interpreter.cpp | 8 +++ 6 files changed, 41 insertions(+), 79 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b84c2dd..de1ad18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,9 @@ +#[=============================================================================[ +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: 2021 Sarita Singh +# SPDX-FileCopyrightText: 2021 Avinal Kumar +#]=============================================================================] + cmake_minimum_required(VERSION 3.16 FATAL_ERROR) # ---- Project ---- diff --git a/include/xbasic/xbasic_interpreter.hpp b/include/xbasic/xbasic_interpreter.hpp index 4aed8da..8d48afd 100644 --- a/include/xbasic/xbasic_interpreter.hpp +++ b/include/xbasic/xbasic_interpreter.hpp @@ -1,3 +1,12 @@ +/** + * SPDX-License-Identifier: Apache-2.0 + * SPDX-FileCopyrightText: 2021 Sarita Singh + * SPDX-FileCopyrightText: 2021 Avinal Kumar + * + * @file xbasic_interpreter.hpp + * @brief Jupyter Kernel Interpreter header file + */ + #ifndef XBASIC_INTERPRETER_HPP_ #define XBASIC_INTERPRETER_HPP_ diff --git a/libs/basic/CMakeLists.txt b/libs/basic/CMakeLists.txt index 3911060..45e8ecb 100644 --- a/libs/basic/CMakeLists.txt +++ b/libs/basic/CMakeLists.txt @@ -1,7 +1,7 @@ -#[=======================================================================[ -SPDX-License-Identifier: Apache-2.0 -SPDX-FileCopyrightText: 2021 Avinal Kumar -#]=======================================================================] +#[=============================================================================[ +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: 2021 Avinal Kumar +#]=============================================================================] cmake_minimum_required(VERSION 3.16) project(basic LANGUAGES C) @@ -11,8 +11,8 @@ add_library(basic "") target_sources(basic PRIVATE ${BASIC_SRC}) target_include_directories(basic PRIVATE include/basic) -#add_executable(basic_exec main.cc) -#target_include_directories(basic_exec PRIVATE include/basic) -#target_link_libraries(basic_exec PRIVATE basic) +add_executable(basic_exec main.cc) +target_include_directories(basic_exec PRIVATE include/basic) +target_link_libraries(basic_exec PRIVATE basic) diff --git a/libs/basic/main.cc b/libs/basic/main.cc index 33020c6..a41874b 100644 --- a/libs/basic/main.cc +++ b/libs/basic/main.cc @@ -6,49 +6,13 @@ * @brief Driver Code */ -// #include -// #include -// #include -// #include -// #include -// #include -// #include - #include #include #include -#include "basic.hpp" +#include "basic/basic.hpp" -// extern bool __RUNNING; -// extern bool __STOPPED; - -// static void sigint_handler(int signum) { -// signal(SIGINT, sigint_handler); -// if (__RUNNING) { -// __RUNNING = false; -// __STOPPED = true; -// printf("STOP\n"); -// fflush(stdout); -// } -// } - -// static char *readline_gets() { -// char *line_read = readline(""); - -// if (line_read && *line_read) { -// add_history(line_read); -// } - -// return line_read; -// } std::string outputs; -// int out(int ch) { -// outputs += char(ch); -// return 1; -// } - -// int in(void) { return getchar(); } void replcc() { std::cout << " _ _ \n" @@ -57,56 +21,22 @@ void replcc() { << "| |_) | (_| \\__ \\ | (__ \n" << "|_.__/ \\__,_|___/_|\\___|\n" << "(c) 2015-2016 Johan Van den Brande\n"; - // using_history(); std::string input; basic check; while (getline(std::cin, input)) { if (!input.compare("QUIT")) { - // check.~basic(); break; } if (!check.evaluate_line(input)) { std::cerr << check.get_error() << "\n"; } - // basic_eval((char *)input.c_str()); if (input == "RUN") { std::cout << check.run(); } - // if (evaluate_last_error()) { - // std::cerr << "ERROR: " << evaluate_last_error() << "\n"; - // clear_last_error(); - // } } - // clear_history(); -} - -void runcc(std::string filename) { - // std::fstream file(filename, std::ios::in); - - // if (!file.is_open()) { - // std::cerr << "Can't open " << filename << std::endl; - // exit(EXIT_FAILURE); - // } - // std::string line; - // while (getline(file, line)) { - // basic_eval((char *)line.c_str()); - // } - // file.close(); - // basic_run(); } int main(int argc, char *argv[]) { - // signal(SIGINT, sigint_handler); - // basic_init(1024 * 8, 2048); - // basic_register_io(out, in); - - if (argc > 1) { - runcc(argv[1]); - } else { - replcc(); - } - - // basic_destroy(); - + replcc(); return EXIT_SUCCESS; } diff --git a/src/main.cc b/src/main.cc index 3d1d6e0..6c2c5aa 100644 --- a/src/main.cc +++ b/src/main.cc @@ -1,3 +1,12 @@ +/** + * SPDX-License-Identifier: Apache-2.0 + * SPDX-FileCopyrightText: 2021 Sarita Singh + * SPDX-FileCopyrightText: 2021 Avinal Kumar + * + * @file main.cc + * @brief Jupyter Kernel main program + */ + #include #include "xbasic/xbasic_interpreter.hpp" diff --git a/src/xbasic_interpreter.cpp b/src/xbasic_interpreter.cpp index 93184ac..d2d4017 100644 --- a/src/xbasic_interpreter.cpp +++ b/src/xbasic_interpreter.cpp @@ -1,3 +1,11 @@ +/** + * SPDX-License-Identifier: Apache-2.0 + * SPDX-FileCopyrightText: 2021 Sarita Singh + * SPDX-FileCopyrightText: 2021 Avinal Kumar + * + * @file xbasic_interpreter.cpp + * @brief Jupyter Kernel Interpreter Implementation + */ #include "xbasic/xbasic_interpreter.hpp" From 4c6aa5c3ab688dcd40faa212732bb0c3ef935566 Mon Sep 17 00:00:00 2001 From: Sarita Singh Date: Tue, 2 Nov 2021 23:30:30 +0530 Subject: [PATCH 3/4] Add gitpod configuration Signed-off-by: Sarita Singh --- .gitpod.dockerfile | 3 +++ .gitpod.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.gitpod.dockerfile b/.gitpod.dockerfile index ff12788..ff7b65c 100644 --- a/.gitpod.dockerfile +++ b/.gitpod.dockerfile @@ -1,3 +1,6 @@ +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: 2021 Avinal Kumar + FROM gitpod/workspace-full:latest USER root diff --git a/.gitpod.yml b/.gitpod.yml index 04b869f..be7449f 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,3 +1,6 @@ +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: 2021 Avinal Kumar + image: file: .gitpod.dockerfile ports: From 0ef4900ba4181631e8b6556defcfd482d8fcb8bc Mon Sep 17 00:00:00 2001 From: Avinal Kumar Date: Tue, 2 Nov 2021 23:31:27 +0530 Subject: [PATCH 4/4] Add binder configuration Signed-off-by: Avinal Kumar --- environment.yml | 3 +++ postBuild | 12 ++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/environment.yml b/environment.yml index 1c8efb8..0f81fe0 100644 --- a/environment.yml +++ b/environment.yml @@ -1,3 +1,6 @@ +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: 2021 Avinal Kumar + name: xeus-basic channels: - conda-forge diff --git a/postBuild b/postBuild index d9614c1..89895a6 100644 --- a/postBuild +++ b/postBuild @@ -1,9 +1,13 @@ -mkdir build +#! /bin/sh -cd build +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: 2021 Avinal Kumar -echo $CONDA_PREFIX +# Create a directory for build +mkdir build && cd build || exit -cmake -D CMAKE_INSTALL_PREFIX=$CONDA_PREFIX .. +# Configure CMake +cmake -D CMAKE_INSTALL_PREFIX="/srv/conda/envs/notebook" .. +# Install the Kernel make install \ No newline at end of file