clang format

This commit is contained in:
2024-01-03 15:34:00 +01:00
parent 35a0a74a00
commit 33a9939b37
7 changed files with 27 additions and 59 deletions

View File

@@ -5,19 +5,15 @@
#ifndef PSIL_CELL_H
#define PSIL_CELL_H
#include <atomic>
#include <cassert>
#include <cstdint>
#include <ostream>
#include <sstream>
#include <string>
#include <utility>
#include <atomic>
enum class CellType {
NUMATOM,
STRATOM,
CONS
};
enum class CellType { NUMATOM, STRATOM, CONS };
using CellValType = int64_t;
@@ -37,9 +33,7 @@ struct NumAtomCell : public Cell {
CellValType _val;
void print(std::ostream &out) override {
out << _val;
}
void print(std::ostream &out) override { out << _val; }
};
struct StrAtomCell : public Cell {
@@ -48,9 +42,7 @@ struct StrAtomCell : public Cell {
std::string _val;
void print(std::ostream &out) override {
out << _val;
}
void print(std::ostream &out) override { out << _val; }
};
struct ConsCell : public Cell {

View File

@@ -46,9 +46,7 @@ public:
return _target->_type;
}
bool atom() const {
return type() != CellType::CONS;
}
bool atom() const { return type() != CellType::CONS; }
bool null() {
if (!_target) return true;
@@ -67,8 +65,7 @@ public:
void setcdr(const Handle &cdr);
friend std::ostream &operator<<(std::ostream &stream, const Handle &h) {
if (h._target)
h._target->print(stream);
if (h._target) h._target->print(stream);
return stream;
}

View File

@@ -4,8 +4,8 @@
#include "Compiler.h"
#include <string>
#include <functional>
#include <string>
Handle Compiler::compile(Handle src, Handle fake_env, Handle suffix) {
Handle out;
@@ -83,8 +83,7 @@ Handle Compiler::compile(Handle src, Handle fake_env, Handle suffix) {
}
Handle newenv = Handle::cons(argNames, fake_env);
if (car.strval() == "let")
out.splice(compileArgsList(argBodies, fake_env));
if (car.strval() == "let") out.splice(compileArgsList(argBodies, fake_env));
else if (car.strval() == "letrec") {
out.append(Handle("DUM"));
out.splice(compileArgsList(argBodies, newenv));
@@ -92,8 +91,7 @@ Handle Compiler::compile(Handle src, Handle fake_env, Handle suffix) {
out.append(Handle("LDF"));
out.append(compile(body, newenv, Handle("RET")));
if (car.strval() == "let")
out.append(Handle("AP"));
if (car.strval() == "let") out.append(Handle("AP"));
else
out.append(Handle("RAP"));
} else {

View File

@@ -7,18 +7,15 @@
#include "MemoryContext.h"
Handle::Handle(Cell *target) : _target(target) {
if (target != nullptr)
MemoryContext::get().add_root(target);
if (target != nullptr) MemoryContext::get().add_root(target);
}
Handle::~Handle() {
if (_target != nullptr)
MemoryContext::get().remove_root(_target);
if (_target != nullptr) MemoryContext::get().remove_root(_target);
}
Handle::Handle(Handle const &other) : _target(other._target) {
if (_target != nullptr)
MemoryContext::get().add_root(_target);
if (_target != nullptr) MemoryContext::get().add_root(_target);
}
Handle &Handle::operator=(Handle other) {
@@ -37,9 +34,7 @@ Handle Handle::pop() {
return ret;
}
void Handle::push(const Handle &what) {
*this = cons(what, *this);
}
void Handle::push(const Handle &what) { *this = cons(what, *this); }
void Handle::append(const Handle &what) {
if (_target == nullptr) *this = cons(nullptr, nullptr);
@@ -62,20 +57,15 @@ void Handle::splice(const Handle &what) {
*this = what;
return;
}
while (cur.cdr().get() != nullptr)
cur = cur.cdr();
while (cur.cdr().get() != nullptr) cur = cur.cdr();
if (what.atom()) cur.setcdr(Handle::cons(what, nullptr));
else
cur.setcdr(what);
}
Handle Handle::makeNumCell(int64_t val) {
return MemoryContext::get().create_cell<NumAtomCell>(val);
}
Handle Handle::makeNumCell(int64_t val) { return MemoryContext::get().create_cell<NumAtomCell>(val); }
Handle Handle::makeStrCell(std::string val) {
return MemoryContext::get().create_cell<StrAtomCell>(std::move(val));
}
Handle Handle::makeStrCell(std::string val) { return MemoryContext::get().create_cell<StrAtomCell>(std::move(val)); }
void Handle::setcar(const Handle &car) {
MemoryContext::get().run_dirty<void>([&](std::function<void(Cell *)> dirty) -> void {
@@ -90,9 +80,5 @@ void Handle::setcdr(const Handle &cdr) {
dynamic_cast<ConsCell &>(*_target)._cdr = cdr.get();
});
}
Handle::Handle(int64_t val) {
*this = Handle::makeNumCell(val);
}
Handle::Handle(std::string strval) {
*this = Handle::makeStrCell(std::move(strval));
}
Handle::Handle(int64_t val) { *this = Handle::makeNumCell(val); }
Handle::Handle(std::string strval) { *this = Handle::makeStrCell(std::move(strval)); }

View File

@@ -11,9 +11,7 @@
#include "VM.h"
void Parser::loadStr(std::string_view input) {
_tokenizer.load(input);
}
void Parser::loadStr(std::string_view input) { _tokenizer.load(input); }
Handle Parser::parseExpr() {
while (!_tokenizer.empty()) {
@@ -55,9 +53,7 @@ std::string Parser::Tokenizer::getNext() {
return ret;
}
std::string_view Parser::Tokenizer::peek() const {
return _tokens.front();
}
std::string_view Parser::Tokenizer::peek() const { return _tokens.front(); }
void Parser::Tokenizer::load(std::string_view input) {
std::string_view::size_type curpos = input.find_first_not_of(' ');
@@ -81,6 +77,4 @@ void Parser::Tokenizer::load(std::string_view input) {
}
}
bool Parser::Tokenizer::empty() const {
return _tokens.empty();
}
bool Parser::Tokenizer::empty() const { return _tokens.empty(); }

View File

@@ -87,7 +87,8 @@ TEST(CompilerTest, RecursiveFn) {
VM vm(ssin, ssout);
Parser parser;
parser.loadStr("(LDC (letrec ((fib (lambda (n) (if n (if (+ n -1) (+ (fib (+ n -1)) (fib(+ n -2))) 1) 0) ))) (fib 10)) EVAL PRINT STOP)");
parser.loadStr(
"(LDC (letrec ((fib (lambda (n) (if n (if (+ n -1) (+ (fib (+ n -1)) (fib(+ n -2))) 1) 0) ))) (fib 10)) EVAL PRINT STOP)");
vm.loadControl(parser.parseExpr());
vm.run();
}

View File

@@ -25,8 +25,7 @@ TEST(VMWithParserTest, BasicBranch) {
VM vm(ssin, ssout);
Parser parser;
parser.loadStr(
"(LDC 1 SEL (LDC 10 PUTNUM JOIN) (LDC 20 PUTNUM JOIN) LDC 0 SEL (LDC 30 PUTNUM JOIN) (LDC 40 PUTNUM JOIN) STOP)");
parser.loadStr("(LDC 1 SEL (LDC 10 PUTNUM JOIN) (LDC 20 PUTNUM JOIN) LDC 0 SEL (LDC 30 PUTNUM JOIN) (LDC 40 PUTNUM JOIN) STOP)");
vm.loadControl(parser.parseExpr());
vm.run();
}
@@ -56,8 +55,9 @@ TEST(VMWithParserTest, RecFunction) {
{
VM vm(ssin, ssout);
Parser parser;
parser.loadStr(
"( DUM NIL LDF ( LD ( 1 . 1 ) SEL ( LD ( 1 . 1 ) LDC -1 ADD SEL ( NIL LD ( 1 . 1 ) LDC -1 ADD CONS LD ( 2 . 1 ) AP NIL LD ( 1 . 1 ) LDC -2 ADD CONS LD ( 2 . 1 ) AP ADD JOIN ) ( LDC 1 JOIN ) JOIN ) ( LDC 0 JOIN ) RET ) CONS LDF ( NIL LDC 20 CONS LD ( 1 . 1 ) AP RET ) RAP PUTNUM STOP )");
parser.loadStr("( DUM NIL LDF ( LD ( 1 . 1 ) SEL ( LD ( 1 . 1 ) LDC -1 ADD SEL ( NIL LD ( 1 . 1 ) LDC -1 ADD CONS LD ( 2 . 1 ) AP "
"NIL LD ( 1 . 1 ) LDC -2 ADD CONS LD ( 2 . 1 ) AP ADD JOIN ) ( LDC 1 JOIN ) JOIN ) ( LDC 0 JOIN ) RET ) CONS LDF ( "
"NIL LDC 20 CONS LD ( 1 . 1 ) AP RET ) RAP PUTNUM STOP )");
vm.loadControl(parser.parseExpr());
vm.run();
}