<commit_before># $Id$

=head1 NAME

m4.pir - An implementation of GNU m4 in Parrot Intermediate Representation

=head1 DESCRIPTION

Copyright:  2004-2005 <NAME>.  All Rights Reserved.
CVS Info:   $Id$
Overview:   Main of Parrot m4.
History:    Ported from GNU m4 1.4
References: http://www.gnu.org/software/m4/m4.html

=cut

# The needed subroutines are imported from files in 'src'
# TODO: private namespaces for local subroutines in the included files
#
# The names of these source files should be consistent with 'GNU m4'.

# subs for reading in input
.include "dummy/input.pir"

# subs for writing output
.include "languages/m4/src/output.pir"

# This contains the initialization and execution of the builtin macros.
.include "languages/m4/src/builtin.pir"

# This contains reading and writing of frozen files
.include "languages/m4/src/freeze.pir"

# Macros are expanded in there.
.include "languages/m4/src/macro.pir"

# Mainly for debug output
# .include "languages/m4/library/dumper.imc"


=head1 SUBROUTINES
 
=head2 __onload

Load needed libraries

=cut

.sub "__onload" @LOAD

  # load_bytecode "PGE.pbc"        # Loaded by Getopt/Long.pbc
  #load_bytecode "Getopt/Long.pbc"  # This also loads PGE

.end


=head2 m4

Looks at the command line arguments and acts accordingly.

=cut

.sub 'm4' @MAIN 
  .param pmc argv
<commit_msg>Parrot m4: get included files via current working dir again<commit_after># $Id$

=head1 NAME

m4.pir - An implementation of GNU m4 in Parrot Intermediate Representation

=head1 DESCRIPTION

Copyright:  2004-2005 <NAME>.  All Rights Reserved.
CVS Info:   $Id$
Overview:   Main of Parrot m4.
History:    Ported from GNU m4 1.4
References: http://www.gnu.org/software/m4/m4.html

=cut

# The needed subroutines are imported from files in 'src'
# TODO: private namespaces for local subroutines in the included files
#
# The names of these source files should be consistent with 'GNU m4'.

# subs for reading in input
.include "src/input.pir"

# subs for writing output
.include "src/output.pir"

# This contains the initialization and execution of the builtin macros.
.include "src/builtin.pir"

# This contains reading and writing of frozen files
.include "src/freeze.pir"

# Macros are expanded in there.
.include "src/macro.pir"

# Mainly for debug output
# .include "library/dumper.imc"


=head1 SUBROUTINES
 
=head2 __onload

Load needed libraries

=cut

.sub "__onload" @LOAD

  # load_bytecode "PGE.pbc"        # Loaded by Getopt/Long.pbc
  #load_bytecode "Getopt/Long.pbc"  # This also loads PGE

.end


=head2 m4

Looks at the command line arguments and acts accordingly.

=cut

.sub 'm4' @MAIN 
  .param pmc argv

{'fraction_non_alphanumeric': 0.08837908988341482, 'fraction_numerical': 0.020308386611508085, 'mean_word_length': 3.75, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2229834', 'n_tokens_mistral': 949, 'n_tokens_neox': 890, 'n_words': 327}