Skip to content

NOAFtodo 2.0.0 specification

Gregory Dushkin edited this page Sep 28, 2021 · 2 revisions

This page is to help me settle on what I want to see and implement in NOAFtodo and how exactly I am planning to do it to avoid re-writing stuff for 100th time without any clue to what I am actually trying to achieve.

Ideology

What?!

Project structure

Overall

Project uses CMake as a build system, and is written in C++.

All of the project source (.cpp and .hpp) files are located in the src/ directory and its subdrectories.

Files

Code style

List structure

The todo list follows a tree-like structure. Every list contains a root entry (with a parent set to itself), it's descendants.

Scripting language

Scripting language uses ; or \n to break code into elementary instructions. These can be combined and used one inside another as will be described later.

For every elementary instruction there are two possible ways to be executed: evaluation and a command call. Eeach of them has a different set of tokens and rules (similar to how in a shell script you would evaluate arithmetics with $(())).

Command calls follow a patter similar to other software: <command_name>[ <space_separated_arguments>].

User interface

Clone this wiki locally