Skip to content

Instantly share code, notes, and snippets.

@jddurand
jddurand / MarpaX__ESLIF__json__bypass_valuation.pl
Created November 29, 2021 08:53
Another algoithm to scan JSON using marpa, using events to do valuation during parsing, thus bypassing valuation
#!env perl
use Log::Any qw/$log/;
my %ACTIONS = (
'SET_VALUE' => sub {
my ($actionContextp, $outputp, $valuep) = @_;
$log->debugf('... ... ... In SET_VALUE, $outputp=%s, $valuep=%s', $outputp, $valuep);
${$outputp} = ${$valuep};
},
'PUSH_ARRAY' => sub {
/*
* Example of a calulator with ESLIF BNF:
*
* Automatic discard of whitespaces
* Correct association for expressions
* Embedded action using anonymous lua functions
*
*/
:discard ::= /[\s]+/
@jddurand
jddurand / gist:2f1c57d50487e5349e7ab56162043019
Created December 23, 2020 07:07
Marpa--R2's libmarpa sparse
Marpa--R2/cpan/engine/read_only/marpa.c:10072:2: warning: Using plain integer as NULL pointer
Marpa--R2/cpan/engine/read_only/marpa.c:11977:2: warning: Using plain integer as NULL pointer
Marpa--R2/cpan/engine/read_only/marpa.c:12001:2: warning: Using plain integer as NULL pointer
Marpa--R2/cpan/engine/read_only/marpa.c:12408:15: warning: Using plain integer as NULL pointer
Marpa--R2/cpan/engine/read_only/marpa.c:12464:19: warning: Using plain integer as NULL pointer
Marpa--R2/cpan/engine/read_only/marpa.c:12507:19: warning: Using plain integer as NULL pointer
Marpa--R2/cpan/engine/read_only/marpa.c:18030:2: warning: Using plain integer as NULL pointer
Marpa--R2/cpan/engine/read_only/marpa.c:2839:2: warning: Using plain integer as NULL pointer
Marpa--R2/cpan/engine/read_only/marpa.c:2920:2: warning: Using plain integer as NULL pointer
Marpa--R2/cpan/engine/read_only/marpa.c:2920:2: warning: Using plain integer as NULL pointer
@jddurand
jddurand / build_dotnet_debian_gnu_linux_x86.sh
Created December 10, 2017 17:18
Example of builting dotnet core on Debian/Gnu Linux x86
#!env sh
#
# apt-get install clang-4.0 clang-4.0 liblldb-4.0 liblldb-4.0 lldb-4.0 python-lldb-4.0 cmake python mawk sed libunwind-dev liblttng-ust-dev libssl1.0-dev libkrb5-dev libicu-dev uuid-dev
#
__DOTNET_VERSION="2.0.3"
__DEBIAN_OS="Debian"
__DEBIAN_VERSION="9"
__DEBIAN_ARCH="x86"
__CLANG_MAJOR_VERSION=4
__CLANG_MINOR_VERSION=0
#!env perl
use strict;
use diagnostics;
use Getopt::Long;
use POSIX qw/EXIT_SUCCESS EXIT_FAILURE/;
use MIME::Lite;
use File::Basename;
#
## Options
@jddurand
jddurand / gist:7b7074f8ebbf668c25d7
Created January 18, 2015 22:52
unfinished grammar for java class - totally unusable you are warned
:default ::= action => [values] bless => ::lhs
lexeme default = action => [start,length,value,name]
:start ::= ClassFile
ClassFile ::=
magic
minor_version
major_version
constant_pool_count
constant_pools
@jddurand
jddurand / luaMarpa.sh
Last active June 21, 2017 18:36
Marpa/LUA bindings proof of concept
#!env sh -v
#
# Marpa in Lua proof of concept - Assumption: Debian/Linux
#
# Prologue: apt-get -t unstable install lua5.1 liblua5.1-dev swig
#
# Please go to Marpa-R2-2.096000/engine/read_only and execute this file
# ---------------------------------------------------------------------
#
[ -r ./Makefile ] && make distclean
#!env perl
use strict;
use diagnostics;
use Marpa::R2;
use Data::Dumper;
use POSIX qw/EXIT_SUCCESS/;
use Data::Section -setup;
use open qw(:std :utf8); # Undeclared streams in UTF-8.
#
@jddurand
jddurand / _xml_1_0_parseEventsb.c
Last active March 20, 2016 05:26
_xml_1_0_parseEventsb example
/**************************/
/* _xml_1_0_parseEventsb */
/**************************/
static C_INLINE marpaWrapperBool_t _xml_1_0_parseEventsb(void *datavp, marpaWrapper_t *marpaWrapperp, size_t nEventi, marpaWrapperEvent_t *marpaWrapperEventp) {
marpaWrapperBool_t rcb = MARPAWRAPPER_BOOL_TRUE;
xml_1_0_t *xml_1_0p;
marpaXmlLog_t *marpaXmlLogp = NULL;
xml_1_0_symbol_t symboli;
int i;
@jddurand
jddurand / number.pl
Created September 2, 2014 20:05
MintberryCruNCH question on Marpa IRC
use 5.010;
use strict;
use warnings;
use Data::Dumper;
use Marpa::R2;
my $g = Marpa::R2::Scanless::G->new( {
bless_package => 'main',