- Add function declarations, calls, and return statements - Implement lexical scoping with Environment class and closures - Convert print from statement to standard library function - Add assert() function to standard library for testing - Add time() function for microsecond precision benchmarking - Create StdLib class and BuiltinFunction wrapper for standard library - Implement first-class functions and higher-order functions - Add function parameter support (tested up to 100 parameters) - Support alphanumeric identifiers in variable and function names - Add underscore support in variable names and identifiers - Implement string + number and number + string concatenation - Add boolean + string and string + boolean concatenation - Support string multiplication (string * number) - Fix decimal truncation issue by using std::stod for all number parsing - Add comprehensive number formatting with proper precision handling - Support huge numbers (epoch timestamps) without integer overflow - Clean number display (no trailing zeros on integers) - Add basic error handling with program termination on errors - Add comprehensive test suite covering all features - Add escape sequence support (\n, \t, \", \\) - Add comprehensive documentation and language reference - Update development roadmap with completed features
37 lines
593 B
C++
37 lines
593 B
C++
#pragma once
|
|
|
|
#include <iostream>
|
|
#include <fstream>
|
|
#include <string>
|
|
#include "../headers/Lexer.h"
|
|
#include "../headers/Interpreter.h"
|
|
#include "../headers/helperFunctions/ShortHands.h"
|
|
|
|
#define VERSION "0.0.1"
|
|
|
|
class Bob
|
|
{
|
|
public:
|
|
Lexer lexer;
|
|
sptr(Interpreter) interpreter;
|
|
|
|
~Bob() = default;
|
|
|
|
public:
|
|
void runFile(const std::string& path);
|
|
|
|
void runPrompt();
|
|
|
|
void error(int line, const std::string& message);
|
|
|
|
|
|
private:
|
|
bool hadError = false;
|
|
|
|
private:
|
|
void run(std::string source);
|
|
|
|
void report(int line, std::string where, std::string message);
|
|
};
|
|
|