Giter Site home page Giter Site logo

ayacc's Introduction

Ada France Web Site

Ce projet contient les sources de l'application Ada France qui permet au site Ada France de diffuser des informations et promouvoir le langage Ada.

Version 1.20 - Juin 2023

  • Construction avec Alire
  • Mise à jour de AWA

Version 1.19 - Mai 2023

  • Ajout du status INACTIVE pour marquer un membre qui n'est plus actif ou qui utilise une autre adresse mail
  • Correction du mail pour changer son mot de passe

Version 1.18 - Mars 2023

  • Supression des liens externes morts et ajout de nouveaux sites,
  • Meilleure présentation sur les mobiles,
  • Génération des recus en asynchrone avec AWA.Jobs.

Version 1.16 - Dec 2022

  • L'authentification par Github ou Gitlab est possible pour les membres enregistrés
  • Intégration de l'éditeur EasyMDE pour éditer des articles et wiki en Markdown

Cette version est basee sur SQLite et utilise Alire pour la construction et gestion des dependances.

Version 1.13 - Mar 2022

  • Mise à jour pour le renouvellement des cotisations

Compilation

Setup

Pour une compilation sous Debian 12, la configuration suivante est nécessaire:

sudo apt-get install alire imagemagick unzip xsltproc \
  libmariadb-dev mariadb-server mariadb-client libsqlite3-dev \
  context context-modules libjpeg-turbo-progs closure-compiler

Notes:

  • imagemagick est utilisé pour la conversion d'images,
  • context est utilisé pour la génération des attestations

Build

Récupération des sources et des sous modules git:

git clone --recursive https://github.com/Ada-France/ada-france.git
cd ada-france

Ensuite lancer la compilation avec:

alr build -- -XSOCKET=openssl

Lancement

Setup

Pour configurer le serveur la première fois, lancer la commande:

  bin/adafr-server -v setup adafr

Faire le setup dans le navigateur en allant sur la page: http://localhost:8080/adafr/index.html Le setup permet de:

  • définir l'accès à la base de données,
  • configurer les secrets pour OAuth2 (Google, Facebook),
  • configurer les paramètres SMTP pour envoyer les mails

Une fois le setup terminée, l'application Ada France est lancée.

Pour re-faire une setup, supprimer le fichier .initialized et relancer la commande.

Lancement normal:

Pour lancer l'application, utilisez:

   bin/adafr-server start --upload=./upload

Par défault, la base de donnée SQLite est créée avec l'utilisateur admin at ada-france.org et mot de passe admin. Cet utilisateur n'existe pas en prod, inutile d'essayer!

ayacc's People

Contributors

fyrchik avatar lucretia avatar stcarrez avatar zertovitch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ayacc's Issues

Issue with private packages

On some projects involving an ayacc grammar, the compilation of yyparse.adb stops with the following error:

yyparse.adb:6:17: current unit must also be private descendant of "Standard"
yyparse.adb:6:34: current unit must also be private descendant of "Standard"

It happens on a WITH clause:

with RC_Tokens, RC_Shift_Reduce, RC_Goto, RC_Help, RC_IO;
                17               34
---------------/----------------/

The reason is that the *_Goto and *_Shift_Reduce packages are newly private:
goto_file.adb:
Write_Line ("private package " & Goto_Tables_Unit_Name & " is");
shift_reduce_file.adb:
Write_Line ("private package " & Shift_Reduce_Tables_Unit_Name & " is");
A solution could be to make this privacy optional (or just remove it).

Grammar railroad diagram

With a bit of manual fix we can get tools like https://www.bottlecaps.de/convert/ to create a nice navigable railroad diagram from yacc like grammars.

Would be nice if ayacc could generate it as an option like I did here https://github.com/mingodad/lalr-parser-test for byacc/bison/lemon .

Also here https://meimporta.eu/lalr-playground/ I'm trying to adapt https://github.com/cwbaker/lalr to allow anyone play with lalr(1) grammars and I've added the ada grammar from this project (select Ada parser from Examples) and anyone can try change it and test the changes directly (it's wasm based).

Iit uses the same interface as:

Any feedback is welcome !

Cheers !

Syntax Error doesn't show line number

The parser generated by Ayacc doesn't show the line number of a parsed file when it meets a syntax error.
Then it's difficult to spot an error on a large file to be parsed.
Fortunately the solution is already programmed in the aflex & ayacc available with p2ada (here).

parse_template_file.adb, line 351

     Create ("         if yy.error_flag = 0 then --  brand new error"),
 >>  Create ("            yyerror (""Syntax Error"");"),
     Create ("-- UMASS CODES :"),
     Create ("            yy_error_report.Put_Line ( ""Skipping..."" );"),
     Create ("            yy_error_report.Put_Line ( """" );"),
     Create ("-- END OF UMASS CODES."),
     Create ("         end if;"),

In the "p2ada" version:

     Create ("    if yy.error_flag = 0 then -- brand new error"),
     Create ("-- UMASS CODES :"),
     Create ("        yy_error_report.put_line ( ""Skipping..."" );"),
     Create ("        yy_error_report.put_line ( """" );"),
     Create ("-- END OF UMASS CODES."),
     Create ("        if yy_io.Input_Line > 1 then"),
 >>  Create ("            yyerror(""Syntax Error at line"" & Text_IO.Count'Image(yy_io.Input_Line));"),
     Create ("        else"),
     Create ("            yyerror(""Syntax Error at line 1 (or possibly later and the AFLex -E option was omitted)."");"),
     Create ("        end if;"),
     Create ("    end if;"),

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.