MarpaX-Languages-ECMAScript-AST
view release on metacpan or search on metacpan
lib/MarpaX/Languages/ECMAScript/AST/Grammar/CharacterClasses.pm view on Meta::CPAN
use strict;
use warnings FATAL => 'all';
package MarpaX::Languages::ECMAScript::AST::Grammar::CharacterClasses;
use Exporter 'import';
use Encode qw/decode/;
# ABSTRACT: ECMAScript, character classes
our $VERSION = '0.020'; # VERSION
our @EXPORT_OK = qw/
BOM
BS
CR
FF
Isb
IsBackslash
IsBOM
IsCaret
IsCR
IsDecimalDigit
IsDollar
IsDot
IsDquote
IseOrE
Ise
IsE
IsEight
IsEscapeCharacter
IsExponentIndicator
Isf
IsFF
IsHexDigit
IsIdentityEscape
IsLbracket
IsLcurly
IsLF
IsLineTerminator
IsLparen
IsLS
IsMinus
Isn
IsNBSP
IsNine
IsNonZeroDigit
IsNULL
IsOctalDigit
IsPatternCharacter
IsPipe
IsPlus
IsPS
IsQuestion_Mark
Isr
IsRbracket
IsRcurly
IsRegularExpressionNonTerminator
IsRegularExpressionNonTerminatorButNotOneOfBackslashOrSlashOrLbracket
IsRegularExpressionNonTerminatorButNotOneOfRbracketOrBackslash
IsRegularExpressionNonTerminatorButNotOneOfStarOrBackslashOrSlashOrLbracket
IsRparen
IsSingleEscapeCharacter
IsSlash
IsSourceCharacter
IsSourceCharacterButNotLineTerminator
IsSourceCharacterButNotOneOfBackslashOrRbracketOrMinus
IsSourceCharacterButNotOneOfDquoteOrBackslashOrLineTerminator
IsSourceCharacterButNotOneOfDquoteOrBackslashOrU0000ThroughU001F
IsSourceCharacterButNotOneOfEscapeCharacterOrLineTerminator
IsSourceCharacterButNotOneOfSlashOrStar
IsSourceCharacterButNotOneOfSlashOrStarOrLineTerminator
IsSourceCharacterButNotOneOfSquoteOrBackslashOrLineTerminator
IsSourceCharacterButNotSlash
IsSourceCharacterButNotStar
IsSourceCharacterButNotStarOrLineTerminator
IsSP
IsSquote
IsStar
Ist
lib/MarpaX/Languages/ECMAScript/AST/Grammar/CharacterClasses.pm view on Meta::CPAN
VT
WhiteSpace
/;
our %EXPORT_TAGS = ('all' => \@EXPORT_OK);
our $STAR = sprintf('%x', ord('*'));
our $SLASH = sprintf('%x', ord('/'));
our $BACKSLASH = sprintf('%x', ord('\\'));
our $DQUOTE = sprintf('%x', ord('"'));
our $SQUOTE = sprintf('%x', ord("'"));
our $a = sprintf('%x', ord('a'));
our $b = sprintf('%x', ord('b'));
our $c = sprintf('%x', ord('c'));
our $d = sprintf('%x', ord('d'));
our $e = sprintf('%x', ord('e'));
our $f = sprintf('%x', ord('f'));
our $n = sprintf('%x', ord('n'));
our $r = sprintf('%x', ord('r'));
our $t = sprintf('%x', ord('t'));
our $u = sprintf('%x', ord('u'));
our $v = sprintf('%x', ord('v'));
our $x = sprintf('%x', ord('x'));
our $A = sprintf('%x', ord('A'));
our $B = sprintf('%x', ord('B'));
our $C = sprintf('%x', ord('C'));
our $D = sprintf('%x', ord('D'));
our $E = sprintf('%x', ord('E'));
our $F = sprintf('%x', ord('F'));
our $LBRACKET = sprintf('%x', ord('['));
our $RBRACKET = sprintf('%x', ord(']'));
our $LPAREN = sprintf('%x', ord('('));
our $RPAREN = sprintf('%x', ord(')'));
our $LCURLY = sprintf('%x', ord('{'));
our $RCURLY = sprintf('%x', ord('}'));
our $CARET = sprintf('%x', ord('^'));
our $DOLLAR = sprintf('%x', ord('$'));
our $UNDERSCORE = sprintf('%x', ord('_'));
our $DOT = sprintf('%x', ord('.'));
our $PLUS = sprintf('%x', ord('+'));
our $QUESTION_MARK = sprintf('%x', ord('?'));
our $PIPE = sprintf('%x', ord('|'));
our $MINUS = sprintf('%x', ord('-'));
our $ZERO = sprintf('%x', ord('0'));
our $ONE = sprintf('%x', ord('1'));
our $TWO = sprintf('%x', ord('2'));
our $THREE = sprintf('%x', ord('3'));
our $FOUR = sprintf('%x', ord('4'));
our $FIVE = sprintf('%x', ord('5'));
our $SIX = sprintf('%x', ord('6'));
our $SEVEN = sprintf('%x', ord('7'));
our $EIGHT = sprintf('%x', ord('8'));
our $NINE = sprintf('%x', ord('9'));
sub IsWhiteSpace { return <<END;
+MarpaX::Languages::ECMAScript::AST::Grammar::CharacterClasses::IsTAB
+MarpaX::Languages::ECMAScript::AST::Grammar::CharacterClasses::IsVT
+MarpaX::Languages::ECMAScript::AST::Grammar::CharacterClasses::IsFF
+MarpaX::Languages::ECMAScript::AST::Grammar::CharacterClasses::IsSP
+MarpaX::Languages::ECMAScript::AST::Grammar::CharacterClasses::IsNBSP
+MarpaX::Languages::ECMAScript::AST::Grammar::CharacterClasses::IsBOM
+MarpaX::Languages::ECMAScript::AST::Grammar::CharacterClasses::IsUSP
END
}
sub WhiteSpace { return [
@{TAB()},
@{VT()},
@{FF()},
@{SP()},
@{NBSP()},
@{BOM()},
@{USP()},
];
}
sub IsSourceCharacter { return <<END;
+utf8::Any
END
}
sub IsZWNJ { return <<END;
200C
END
}
sub IsZWJ { return <<END;
200D
END
}
sub IsBOM { return <<END;
FEFF
END
}
sub BOM { return [ "\N{U+FEFF}" ] }
sub BS { return [ "\N{U+0008}" ] }
sub IsTAB { return <<END;
0009
END
}
sub TAB { return [ "\N{U+0009}" ] }
sub IsVT { return <<END;
000B
END
}
sub VT { return [ "\N{U+000B}" ] }
sub IsFF { return <<END;
000C
END
}
sub FF { return [ "\N{U+000C}" ] }
sub IsSP { return <<END;
0020
END
}
sub SP { return [ "\N{U+0020}" ] }
sub IsNBSP { return <<END;
00A0
END
}
sub NBSP { return [ "\N{U+00A0}" ] }
sub IsUSP { return <<END;
+utf8::Zs
END
}
our @USP = ();
{
#
# We do as "unichars". And hardcode restriction to 65535, i.e.
lib/MarpaX/Languages/ECMAScript/AST/Grammar/CharacterClasses.pm view on Meta::CPAN
sub IsNine { return <<END;
$NINE
END
}
sub IsZeroToThree { return <<END;
$ZERO
$ONE
$TWO
$THREE
END
}
sub IsFourToSeven { return <<END;
$FOUR
$FIVE
$SIX
$SEVEN
END
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
MarpaX::Languages::ECMAScript::AST::Grammar::CharacterClasses - ECMAScript, character classes
=head1 VERSION
version 0.020
=head1 SYNOPSIS
use strict;
use warnings FATAL => 'all';
use MarpaX::Languages::ECMAScript::AST::Grammar::CharacterClasses;
=head2 IsWhiteSpace()
=head2 WhiteSpace()
Return an array reference of characters composing WhiteSpace
=head2 IsSourceCharacter()
=head2 IsZWNJ()
=head2 sub IsZWJ()
=head2 IsBOM()
=head2 BOM()
Return an array reference of characters composing BOM
=head2 BS()
Return an array reference of characters composing BS
=head2 IsTAB()
=head2 TAB()
Return an array reference of characters composing TAB
=head2 IsVT()
=head2 VT()
Return an array reference of characters composing VT
=head2 IsFF()
=head2 FF()
Return an array reference of characters composing FF
=head2 IsSP()
=head2 SP()
Return an array reference of characters composing SP
=head2 IsNBSP()
=head2 NBSP()
Return an array reference of characters composing NBSP
=head2 IsUSP()
=head2 USP()
Return an array reference of characters composing USP
=head2 IsLF()
=head2 LF()
Return an array reference of characters composing LF
=head2 IsCR()
=head2 CR()
Return an array reference of characters composing CR
=head2 IsNULL()
=head2 NULL()
Return an array reference of characters composing NULL
=head2 IsLS()
( run in 1.567 second using v1.01-cache-2.11-cpan-fe3c2283af0 )