Erlang-Parser

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

lib/Erlang/Parser/Node/Directive.pm
lib/Erlang/Parser/Node/Float.pm
lib/Erlang/Parser/Node/FunLocal.pm
lib/Erlang/Parser/Node/FunLocalCase.pm
lib/Erlang/Parser/Node/FunRef.pm
lib/Erlang/Parser/Node/If.pm
lib/Erlang/Parser/Node/IfExpr.pm
lib/Erlang/Parser/Node/Integer.pm
lib/Erlang/Parser/Node/List.pm
lib/Erlang/Parser/Node/Literal.pm
lib/Erlang/Parser/Node/Macro.pm
lib/Erlang/Parser/Node/Receive.pm
lib/Erlang/Parser/Node/ReceiveAfter.pm
lib/Erlang/Parser/Node/RecordNew.pm
lib/Erlang/Parser/Node/String.pm
lib/Erlang/Parser/Node/Try.pm
lib/Erlang/Parser/Node/Tuple.pm
lib/Erlang/Parser/Node/UnOp.pm
lib/Erlang/Parser/Node/Variable.pm
lib/Erlang/Parser/Node/VariableRecordAccess.pm
lib/Erlang/Parser/Node/VariableRecordUpdate.pm

lib/Erlang/Parser/Node/Macro.pm  view on Meta::CPAN

# Copyright 2011-2012 Yuki Izumi. ( anneli AT cpan DOT org )
# This is free software; you can redistribute it and/or modify it under the
# same terms as Perl itself.

package Erlang::Parser::Node::Macro;

use Moose;
with 'Erlang::Parser::Node';

has 'macro' => (is => 'rw', required => 1, isa => 'Str');

sub print {
	my ($self, $fh, $depth) = @_;
	$depth ||= 0;

	print $fh '?', $self->macro;
}

__PACKAGE__->meta->make_immutable;

=head1 NAME

Erlang::Parser::Node::Macro - a preprocessor-style macro

=head1 DESCRIPTION

Defined with the -define() directive; expands as any node.

=head2 Accessors

=over 4

=item C<macro>

lib/Erlang/Parser/Parser.pm  view on Meta::CPAN

    use Erlang::Parser::Node::Directive;
    use Erlang::Parser::Node::DefList;
    use Erlang::Parser::Node::Def;
    use Erlang::Parser::Node::WhenList;
    use Erlang::Parser::Node::Atom;
    use Erlang::Parser::Node::Integer;
    use Erlang::Parser::Node::BinOp;
    use Erlang::Parser::Node::List;
    use Erlang::Parser::Node::Variable;
    use Erlang::Parser::Node::Tuple;
    use Erlang::Parser::Node::Macro;
    use Erlang::Parser::Node::String;
    use Erlang::Parser::Node::Call;
    use Erlang::Parser::Node::Alt;
    use Erlang::Parser::Node::Try;
    use Erlang::Parser::Node::Literal;
    use Erlang::Parser::Node::FunRef;
    use Erlang::Parser::Node::FunLocal;
    use Erlang::Parser::Node::FunLocalCase;
    use Erlang::Parser::Node::Case;
    use Erlang::Parser::Node::RecordNew;

lib/Erlang/Parser/Parser.pm  view on Meta::CPAN

	[#Rule 79
		 'atom', 1,
sub
#line 191 "lib/Erlang/Parser/Parser.yp"
{ new_node 'Atom', atom => $_[1] }
	],
	[#Rule 80
		 'macro', 1,
sub
#line 195 "lib/Erlang/Parser/Parser.yp"
{ new_node 'Macro', macro => substr($_[1], 1) }
	],
	[#Rule 81
		 'variable', 1,
sub
#line 199 "lib/Erlang/Parser/Parser.yp"
{ new_node 'Variable', variable => $_[1] }
	],
	[#Rule 82
		 'string', 1,
sub

lib/Erlang/Parser/Parser.yp  view on Meta::CPAN

    use Erlang::Parser::Node::Directive;
    use Erlang::Parser::Node::DefList;
    use Erlang::Parser::Node::Def;
    use Erlang::Parser::Node::WhenList;
    use Erlang::Parser::Node::Atom;
    use Erlang::Parser::Node::Integer;
    use Erlang::Parser::Node::BinOp;
    use Erlang::Parser::Node::List;
    use Erlang::Parser::Node::Variable;
    use Erlang::Parser::Node::Tuple;
    use Erlang::Parser::Node::Macro;
    use Erlang::Parser::Node::String;
    use Erlang::Parser::Node::Call;
    use Erlang::Parser::Node::Alt;
    use Erlang::Parser::Node::Try;
    use Erlang::Parser::Node::Literal;
    use Erlang::Parser::Node::FunRef;
    use Erlang::Parser::Node::FunLocal;
    use Erlang::Parser::Node::FunLocalCase;
    use Erlang::Parser::Node::Case;
    use Erlang::Parser::Node::RecordNew;

lib/Erlang/Parser/Parser.yp  view on Meta::CPAN

    | macro
    | variable
    | atom
    ;

atom:
      ATOM                      { new_node 'Atom', atom => $_[1] }
    ;

macro:
      MACRO                     { new_node 'Macro', macro => substr($_[1], 1) }
    ;

variable:
      VARIABLE                  { new_node 'Variable', variable => $_[1] }
    ;

string:
      STRING                    { new_node 'String', string => $_[1] }
    | string STRING             { $_[1]->_append($_[2]) }
    ;



( run in 0.609 second using v1.01-cache-2.11-cpan-49f99fa48dc )