diff options
Diffstat (limited to 'lexilla/test')
-rw-r--r-- | lexilla/test/examples/raku/SciTE.properties | 113 | ||||
-rw-r--r-- | lexilla/test/examples/raku/x.p6 | 54 | ||||
-rw-r--r-- | lexilla/test/examples/raku/x.p6.styled | 54 |
3 files changed, 221 insertions, 0 deletions
diff --git a/lexilla/test/examples/raku/SciTE.properties b/lexilla/test/examples/raku/SciTE.properties new file mode 100644 index 000000000..065af1363 --- /dev/null +++ b/lexilla/test/examples/raku/SciTE.properties @@ -0,0 +1,113 @@ +lexer.*.p6=raku +# Keywords (base) +keywords.$(file.patterns.raku)=BEGIN CATCH CHECK CONTROL END ENTER EVAL FIRST \ + INIT KEEP LAST LEAVE NEXT POST PRE START TEMP UNDO after also andthen as \ + async augment bag before but category circumfix class cmp complex constant \ + contend default defer div does dynamic else elsif enum eq eqv extra fail \ + fatal ff fff for gather gcd ge given grammar gt handles has if infix is lcm \ + le leave leg let lift loop lt macro make maybe method mix mod module multi \ + ne not o only oo or orelse orwith postcircumfix postfix prefix proto regex \ + repeat require return-rw returns role rule size_t slang start str submethod \ + subset supersede take temp term token trusts try unit unless until when \ + where while with without x xor xx +# Keywords (functions) +keywords2.$(file.patterns.raku)=ACCEPTS AT-KEY EVALFILE EXISTS-KEY Filetests \ + IO STORE abs accept acos acosec acosech acosh acotan acotanh alarm and \ + antipairs asec asech asin asinh atan atan2 atanh base bind binmode bless \ + break caller ceiling chars chdir chmod chomp chop chr chroot chrs cis close \ + closedir codes comb conj connect contains continue cos cosec cosech cosh \ + cotan cotanh crypt dbm defined die do dump each elems eof exec exists exit \ + exp expmod fc fcntl fileno flat flip flock floor fmt fork formats functions \ + get getc getpeername getpgrp getppid getpriority getsock gist glob gmtime \ + goto grep hyper import index int invert ioctl is-prime iterator join keyof \ + keys kill kv last lazy lc lcfirst lines link list listen local localtime \ + lock log log10 lsb lstat map match mkdir msb msg my narrow new next no of \ + open ord ords our pack package pairs path pick pipe polymod pop pos pred \ + print printf prototype push quoting race rand read readdir readline readlink \ + readpipe recv redo ref rename requires reset return reverse rewinddir rindex \ + rmdir roots round samecase say scalar sec sech seek seekdir select semctl \ + semget semop send set setpgrp setpriority setsockopt shift shm shutdown sign \ + sin sinh sleep sockets sort splice split sprintf sqrt srand stat state study \ + sub subst substr substr-rw succ symlink sys syscall system syswrite tan tanh \ + tc tclc tell telldir tie time times trans trim trim-leading trim-trailing \ + truncate uc ucfirst unimatch uniname uninames uniprop uniprops unival unlink \ + unpack unpolar unshift untie use utime values wait waitpid wantarray warn \ + wordcase words write +# Keywords (types) +keywords3.$(file.patterns.raku)=AST Any Block Bool CallFrame Callable Code \ + Collation Compiler Complex ComplexStr Cool CurrentThreadScheduler Date \ + DateTime Dateish Distribution Distribution::Hash Distribution::Locally \ + Distribution::Path Duration Encoding Encoding::Registry Endian FatRat \ + ForeignCode HyperSeq HyperWhatever Instant Int IntStr Junction Label \ + Lock::Async Macro Method Mu Nil Num NumStr Numeric ObjAt Parameter Perl \ + PredictiveIterator Proxy RaceSeq Rat RatStr Rational Real Routine \ + Routine::WrapHandle Scalar Sequence Signature Str StrDistance Stringy Sub \ + Submethod Telemetry Telemetry::Instrument::Thread \ + Telemetry::Instrument::ThreadPool Telemetry::Instrument::Usage \ + Telemetry::Period Telemetry::Sampler UInt ValueObjAt Variable Version \ + Whatever WhateverCode atomicint bit bool buf buf1 buf16 buf2 buf32 buf4 \ + buf64 buf8 int int1 int16 int2 int32 int4 int64 int8 long longlong num \ + num32 num64 rat rat1 rat16 rat2 rat32 rat4 rat64 rat8 uint uint1 uint16 \ + uint2 uint32 uint4 uint64 uint8 utf16 utf32 utf8 +# Keywords (types composite) +keywords4.$(file.patterns.raku)=Array Associative Bag BagHash Baggy Blob Buf \ + Capture Enumeration Hash Iterable Iterator List Map Mix MixHash Mixy NFC NFD \ + NFKC NFKD Pair Positional PositionalBindFailover PseudoStash QuantHash Range \ + Seq Set SetHash Setty Slip Stash Uni utf8 +# Keywords (types domain specific) +keywords5.$(file.patterns.raku)=Attribute Cancellation Channel CompUnit \ + CompUnit::Repository CompUnit::Repository::FileSystem \ + CompUnit::Repository::Installation Distro Grammar IO IO::ArgFiles \ + IO::CatHandle IO::Handle IO::Notification IO::Path IO::Path::Cygwin \ + IO::Path::QNX IO::Path::Unix IO::Path::Win32 IO::Pipe IO::Socket \ + IO::Socket::Async IO::Socket::INET IO::Spec IO::Spec::Cygwin \ + IO::Spec::QNX IO::Spec::Unix IO::Spec::Win32 IO::Special Kernel Lock \ + Match Order Pod::Block Pod::Block::Code Pod::Block::Comment \ + Pod::Block::Declarator Pod::Block::Named Pod::Block::Para Pod::Block::Table \ + Pod::Defn Pod::FormattingCode Pod::Heading Pod::Item Proc Proc::Async \ + Promise Regex Scheduler Semaphore Supplier Supplier::Preserving Supply \ + Systemic Tap Thread ThreadPoolScheduler VM +# Keywords (types domain exceptions) +keywords6.$(file.patterns.raku)=Backtrace Backtrace::Frame CX::Done CX::Emit \ + CX::Last CX::Next CX::Proceed CX::Redo CX::Return CX::Succeed CX::Take \ + CX::Warn Exception Failure X::AdHoc X::Anon::Augment X::Anon::Multi \ + X::Assignment::RO X::Attribute::NoPackage X::Attribute::Package \ + X::Attribute::Required X::Attribute::Undeclared X::Augment::NoSuchType \ + X::Bind X::Bind::NativeType X::Bind::Slice X::Caller::NotDynamic \ + X::Channel::ReceiveOnClosed X::Channel::SendOnClosed X::Comp \ + X::Composition::NotComposable X::Constructor::Positional X::Control \ + X::ControlFlow X::ControlFlow::Return X::DateTime::TimezoneClash \ + X::Declaration::Scope X::Declaration::Scope::Multi X::Does::TypeObject \ + X::Dynamic::NotFound X::Eval::NoSuchLang X::Export::NameClash X::IO \ + X::IO::Chdir X::IO::Chmod X::IO::Copy X::IO::Cwd X::IO::Dir X::IO::DoesNotExist \ + X::IO::Link X::IO::Mkdir X::IO::Move X::IO::Rename X::IO::Rmdir \ + X::IO::Symlink X::IO::Unlink X::Inheritance::NotComposed \ + X::Inheritance::Unsupported X::Method::InvalidQualifier X::Method::NotFound \ + X::Method::Private::Permission X::Method::Private::Unqualified \ + X::Mixin::NotComposable X::NYI X::NoDispatcher X::Numeric::Real \ + X::OS X::Obsolete X::OutOfRange X::Package::Stubbed X::Parameter::Default \ + X::Parameter::MultipleTypeConstraints X::Parameter::Placeholder \ + X::Parameter::Twigil X::Parameter::WrongOrder X::Phaser::Multiple \ + X::Phaser::PrePost X::Placeholder::Block X::Placeholder::Mainline \ + X::Pod X::Proc::Async X::Proc::Async::AlreadyStarted X::Proc::Async::BindOrUse \ + X::Proc::Async::CharsOrBytes X::Proc::Async::MustBeStarted \ + X::Proc::Async::OpenForWriting X::Proc::Async::TapBeforeSpawn \ + X::Proc::Unsuccessful X::Promise::CauseOnlyValidOnBroken X::Promise::Vowed \ + X::Redeclaration X::Role::Initialization X::Scheduler::CueInNaNSeconds \ + X::Seq::Consumed X::Sequence::Deduction X::Signature::NameClash \ + X::Signature::Placeholder X::Str::Numeric X::StubCode X::Syntax \ + X::Syntax::Augment::WithoutMonkeyTyping X::Syntax::Comment::Embedded \ + X::Syntax::Confused X::Syntax::InfixInTermPosition X::Syntax::Malformed \ + X::Syntax::Missing X::Syntax::NegatedPair X::Syntax::NoSelf \ + X::Syntax::Number::RadixOutOfRange X::Syntax::P5 X::Syntax::Perl5Var \ + X::Syntax::Regex::Adverb X::Syntax::Regex::SolitaryQuantifier \ + X::Syntax::Reserved X::Syntax::Self::WithoutObject \ + X::Syntax::Signature::InvocantMarker X::Syntax::Term::MissingInitializer \ + X::Syntax::UnlessElse X::Syntax::Variable::Match X::Syntax::Variable::Numeric \ + X::Syntax::Variable::Twigil X::Temporal X::Temporal::InvalidFormat \ + X::TypeCheck X::TypeCheck::Assignment X::TypeCheck::Binding \ + X::TypeCheck::Return X::TypeCheck::Splice X::Undeclared +# Keywords (adverbs) +keywords7.$(file.patterns.raku)=D a array b backslash c closure delete double \ + exec exists f function h hash heredoc k kv p q qq quotewords s scalar single \ + sym to v val w words ww x diff --git a/lexilla/test/examples/raku/x.p6 b/lexilla/test/examples/raku/x.p6 new file mode 100644 index 000000000..0cbdb6a57 --- /dev/null +++ b/lexilla/test/examples/raku/x.p6 @@ -0,0 +1,54 @@ +use v6; + +# Normal single line comment +my Int $i = 0; +my Rat $r = 3.142; +my Str $s = "Hello, world! \$i == $i and \$r == $r"; +say $s; + +#`{{ +*** This is a multi-line comment *** +}} + +my @array = #`[[ inline comment ]] <f fo foo food>; +my %hash = ( AAA => 1, BBB => 2 ); + +say q[This back\slash stays]; +say q[This back\\slash stays]; # Identical output +say Q:q!Just a literal "\n" here!; + +=begin pod +POD Documentation... +=end pod + +say qq:to/END/; +A multi-line +string with interpolated vars: $i, $r +END + +sub function { + return q:to/END/; +Here is +some multi-line +string +END +} + +my $func = &function; +say $func(); + +grammar Calculator { + token TOP { <calc-op> } + proto rule calc-op {*} + rule calc-op:sym<add> { <num> '+' <num> } + rule calc-op:sym<sub> { <num> '-' <num> } + token num { \d+ } +} + +class Calculations { + method TOP ($/) { make $<calc-op>.made; } + method calc-op:sym<add> ($/) { make [+] $<num>; } + method calc-op:sym<sub> ($/) { make [-] $<num>; } +} + +say Calculator.parse('2 + 3', actions => Calculations).made; diff --git a/lexilla/test/examples/raku/x.p6.styled b/lexilla/test/examples/raku/x.p6.styled new file mode 100644 index 000000000..9bef97940 --- /dev/null +++ b/lexilla/test/examples/raku/x.p6.styled @@ -0,0 +1,54 @@ +{20}use{0} {16}v6{18};{0} + +{2}# Normal single line comment{0} +{20}my{0} {22}Int{0} {23}$i{0} {18}={0} {16}0{18};{0} +{20}my{0} {22}Rat{0} {23}$r{0} {18}={0} {16}3.142{18};{0} +{20}my{0} {22}Str{0} {23}$s{0} {18}={0} {8}"Hello, world! \$i == {12}$i{8} and \$r == {12}$r{8}"{18};{0} +{20}say{0} {23}$s{18};{0} + +{2}#`{3}{{ +*** This is a multi-line comment *** +}}{0} + +{20}my{0} {24}@array{0} {18}={0} {2}#`{3}[[ inline comment ]]{0} {9}<f fo foo food>{18};{0} +{20}my{0} {25}%hash{0} {18}={0} {18}({0} {21}AAA{0} {18}=>{0} {16}1{18},{0} {21}BBB{0} {18}=>{0} {16}2{0} {18});{0} + +{20}say{0} {9}q[This back\slash stays]{18};{0} +{20}say{0} {9}q[This back\\slash stays]{18};{0} {2}# Identical output{0} +{20}say{0} {11}Q{15}:q{11}!Just a literal "\n" here!{18};{0} + +{4}=begin pod +POD Documentation... +=end pod{0} + +{20}say{0} {10}qq{15}:to{10}/END/{18};{7} +A multi-line +string with interpolated vars: {12}$i{7}, {12}$r{7} +END{0} + +{20}sub{0} {21}function{0} {18}{{0} + {20}return{0} {9}q{15}:to{9}/END/{18};{6} +Here is +some multi-line +string +END{0} +{18}}{0} + +{20}my{0} {23}$func{0} {18}={0} {26}&function{18};{0} +{20}say{0} {23}$func{18}();{0} + +{19}grammar{0} {27}Calculator{0} {18}{{0} + {19}token{0} {21}TOP{0} {13}{ <calc-op> }{0} + {19}proto{0} {19}rule{0} {21}calc-op{0} {13}{*}{0} + {19}rule{0} {21}calc-op{15}:sym{18}<{21}add{18}>{0} {13}{ <num> '+' <num> }{0} + {19}rule{0} {21}calc-op{15}:sym{18}<{21}sub{18}>{0} {13}{ <num> '-' <num> }{0} + {19}token{0} {21}num{0} {13}{ \d+ }{0} +{18}}{0} + +{19}class{0} {28}Calculations{0} {18}{{0} + {19}method{0} {21}TOP{0} {18}({23}$/{18}){0} {18}{{0} {19}make{0} {23}${18}<{23}calc-op{18}>.{21}made{18};{0} {18}}{0} + {19}method{0} {21}calc-op{15}:sym{18}<{21}add{18}>{0} {18}({23}$/{18}){0} {18}{{0} {21}make{0} {18}[+]{0} {23}${18}<{23}num{18}>;{0} {18}}{0} + {19}method{0} {21}calc-op{15}:sym{18}<{21}sub{18}>{0} {18}({23}$/{18}){0} {18}{{0} {21}make{0} {18}[-]{0} {23}${18}<{23}num{18}>;{0} {18}}{0} +{18}}{0} + +{20}say{0} {21}Calculator{18}.{21}parse{18}({8}'2 + 3'{18},{0} {21}actions{0} {18}=>{0} {21}Calculations{18}).{21}made{18};{0} |