Я уже указывал в вопросе это - https://www.humhub.org/ Но там локализация русская не очень хорошая.
Для начала как вооще строятся AST (абстрактное синтаксическое дерево) деревья? Что почитать?
Как создать парсер для языка, например SQL, который генерирует AST дерево и прощает синтаксические ошибки?
typeof(str+4) == char*cout << *(str+4)typeof(str[4])==charstr+4 === &str[4]
*(str+4) === str[4].      #include <iostream>
void foo()
{
	int number;
	cin >> number;
	if (number != 0)
	{
                //фишка в том что:
		foo(); //сначала выполняется функция 
		cout << number << " "; // а после уже выполняется вывод
	}
}
int main(int argc, char *argv[])
{
	foo();
        return 0;
}
      
  
  SELECT * FROM ads a where a.city_id = id_нужного_городаdefine('DOCROOT', realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR);
move_uploaded_file($_FILES['image']['tmp_name'], DOCROOT  . 'uploads/slideshow./' . $_FILES['image']['name']);      <form action="<?=$_SERVER['REQUEST_URI']?>">
...
</form><form action="http://host.com/form/"><script>alert('xss')</script><br class="demo">
...
</form>