diff --git a/add-notice.sh b/add-notice.sh
new file mode 100755
index 0000000..963ec4b
--- /dev/null
+++ b/add-notice.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# Path to your notice file
+NOTICE_FILE="./NOTICE"
+
+# Check if notice file exists
+if [ ! -f "$NOTICE_FILE" ]; then
+ echo "Error: $NOTICE_FILE not found!"
+ exit 1
+fi
+
+# Find all .cpp, .hpp, .h, and .cc files
+# Excluding the .git directory
+find . -type d -name ".git" -prune -o -type d -name "build" -prune -o -type f \( -name "*.cpp" -o -name "*.hpp" -o -name "*.h" -o -name "*.cc" \) -print | while read -r file; do
+
+ # Check if the file already contains a specific keyword from your notice
+ # to avoid double-prepending (e.g., "Copyright")
+ if grep -q "Copyright" "$file"; then
+ echo "Skipping $file (License already exists)"
+ else
+ echo "Adding notice to $file"
+ # Create a temp file: notice + newline + original content
+ { cat "$NOTICE_FILE"; echo ""; cat "$file"; } > "$file.tmp" && mv "$file.tmp" "$file"
+ fi
+done
+
+echo "Done!"
diff --git a/frontend/src/main.cpp b/frontend/src/main.cpp
index 1f689a0..67adcc8 100644
--- a/frontend/src/main.cpp
+++ b/frontend/src/main.cpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#include
#include
#include
diff --git a/lib/include/artichoke/Coroutine/Generator.hpp b/lib/include/artichoke/Coroutine/Generator.hpp
index 899f8f1..839bdbb 100644
--- a/lib/include/artichoke/Coroutine/Generator.hpp
+++ b/lib/include/artichoke/Coroutine/Generator.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Coroutine/Utils.hpp b/lib/include/artichoke/Coroutine/Utils.hpp
index 6a6341c..89f39eb 100644
--- a/lib/include/artichoke/Coroutine/Utils.hpp
+++ b/lib/include/artichoke/Coroutine/Utils.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#define yield co_yield
diff --git a/lib/include/artichoke/Parser/AST/AST.hpp b/lib/include/artichoke/Parser/AST/AST.hpp
index d45cc33..8a8a10c 100644
--- a/lib/include/artichoke/Parser/AST/AST.hpp
+++ b/lib/include/artichoke/Parser/AST/AST.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Parser/AST/Common.hpp b/lib/include/artichoke/Parser/AST/Common.hpp
index 740ba63..2d90531 100644
--- a/lib/include/artichoke/Parser/AST/Common.hpp
+++ b/lib/include/artichoke/Parser/AST/Common.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Parser/AST/Declarations.hpp b/lib/include/artichoke/Parser/AST/Declarations.hpp
index 744eb8e..cac62f0 100644
--- a/lib/include/artichoke/Parser/AST/Declarations.hpp
+++ b/lib/include/artichoke/Parser/AST/Declarations.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Parser/AST/Expressions.hpp b/lib/include/artichoke/Parser/AST/Expressions.hpp
index 64599d4..e210ea1 100644
--- a/lib/include/artichoke/Parser/AST/Expressions.hpp
+++ b/lib/include/artichoke/Parser/AST/Expressions.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Parser/AST/Literals.hpp b/lib/include/artichoke/Parser/AST/Literals.hpp
index 3699b8e..e6871b7 100644
--- a/lib/include/artichoke/Parser/AST/Literals.hpp
+++ b/lib/include/artichoke/Parser/AST/Literals.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Parser/AST/Statements.hpp b/lib/include/artichoke/Parser/AST/Statements.hpp
index 23834a0..f0b50a4 100644
--- a/lib/include/artichoke/Parser/AST/Statements.hpp
+++ b/lib/include/artichoke/Parser/AST/Statements.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Parser/AST/Types.hpp b/lib/include/artichoke/Parser/AST/Types.hpp
index f3bf72e..040d76b 100644
--- a/lib/include/artichoke/Parser/AST/Types.hpp
+++ b/lib/include/artichoke/Parser/AST/Types.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Parser/Parser.hpp b/lib/include/artichoke/Parser/Parser.hpp
index 34a970a..eb0f82a 100644
--- a/lib/include/artichoke/Parser/Parser.hpp
+++ b/lib/include/artichoke/Parser/Parser.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Tokenizer/Token.hpp b/lib/include/artichoke/Tokenizer/Token.hpp
index 5192d8a..d258958 100644
--- a/lib/include/artichoke/Tokenizer/Token.hpp
+++ b/lib/include/artichoke/Tokenizer/Token.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Tokenizer/Tokenizer.hpp b/lib/include/artichoke/Tokenizer/Tokenizer.hpp
index 73b474c..0bf5dda 100644
--- a/lib/include/artichoke/Tokenizer/Tokenizer.hpp
+++ b/lib/include/artichoke/Tokenizer/Tokenizer.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Tokenizer/TokenizerRange.hpp b/lib/include/artichoke/Tokenizer/TokenizerRange.hpp
index 63891d5..bca3f63 100644
--- a/lib/include/artichoke/Tokenizer/TokenizerRange.hpp
+++ b/lib/include/artichoke/Tokenizer/TokenizerRange.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Util/Demangle.hpp b/lib/include/artichoke/Util/Demangle.hpp
index 20db504..bffe357 100644
--- a/lib/include/artichoke/Util/Demangle.hpp
+++ b/lib/include/artichoke/Util/Demangle.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Util/Expected.hpp b/lib/include/artichoke/Util/Expected.hpp
index d439e41..5ab2933 100644
--- a/lib/include/artichoke/Util/Expected.hpp
+++ b/lib/include/artichoke/Util/Expected.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Util/OverloadSet.hpp b/lib/include/artichoke/Util/OverloadSet.hpp
index 5ad8bbb..3371304 100644
--- a/lib/include/artichoke/Util/OverloadSet.hpp
+++ b/lib/include/artichoke/Util/OverloadSet.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
namespace arti::lang {
diff --git a/lib/include/artichoke/Util/Strings.hpp b/lib/include/artichoke/Util/Strings.hpp
index e011a69..cc18b4a 100644
--- a/lib/include/artichoke/Util/Strings.hpp
+++ b/lib/include/artichoke/Util/Strings.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include
diff --git a/lib/include/artichoke/Util/TrieMap.hpp b/lib/include/artichoke/Util/TrieMap.hpp
index c6cbe3c..a871ee2 100644
--- a/lib/include/artichoke/Util/TrieMap.hpp
+++ b/lib/include/artichoke/Util/TrieMap.hpp
@@ -1,3 +1,25 @@
+//============================================================================//
+// //
+// artichoke programming language //
+// //
+// Copyright (C) 2025 Erick Saul Guzman Ramos, whoami.artichoke.dev //
+// //
+// //
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU Affero General Public License as published //
+// by the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// This program is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU Affero General Public License for more details. //
+// //
+// You should have received a copy of the GNU Affero General Public License //
+// along with this program. If not, see . //
+// //
+//============================================================================//
+
#pragma once
#include