Acme-Perl-VM
view release on metacpan or search on metacpan
lib/Acme/Perl/VM/JA.pod view on Meta::CPAN
ãããæ§ææ¨ãè§£éããåºæ¬çãªæµãã§ããããã°ã©ã ã®åå²ããµãã«ã¼ãã³ã®å¼ã³åºããªã©ãããã¨æ´ã«è¤éã«ãªãã¾ããï¼ä¸é£ã®æµãã¯åãã§ãã
以ä¸ã®ã»ã¯ã·ã§ã³ã§ã¯ï¼ä»®æ³ãã·ã³ã®å®è£
ã®ä¸ã§ç¹ã«éè¦ãªã³ã³ãã¼ãã³ãã«ã¤ãã¦èª¬æãã¾ãã
=head2 The Perl Stack (PL_stack_base)
Perlããã°ã©ã ã®æç¶ãã¨æ»ãå¤ã®ããã«ä½¿ãããã¹ã¿ãã¯ã§ãã
ãã®ã¹ã¿ãã¯ã¯çµã¿è¾¼ã¿é¢æ°ã¨ãµãã«ã¼ãã³ã®ä¸¡æ¹ã§ä½¿ããã¾ãã
ç¾å¨ã®perl5ã®å®è£
ã§ã¯ï¼ãã®ã¹ã¿ãã¯ã¯Cã®é
åã§è¡¨ç¾ããï¼å¿
è¦ã«å¿ãã¦C<realloc()>ã§æ¡å¼µããã¾ããã¹ã¿ãã¯ã®å
é ã¯ã¹ã¿ãã¯ãã¤ã³ã¿(C<PL_stack_sp>)ã¨ãã¦åç
§ã§ããã®ã§ããï¼ppcodeå
ã§...
APVMã§ã¯ããã¯Perlã®é
åã§è¡¨ç¾ããï¼ã¹ã¿ãã¯ãã¤ã³ã¿ã¯é
åã®æå¾ã®æ·»ãåã§ãã
ãã¼ã«ã«ã³ãã¼ã¯ä½ãã¾ããã
AVPMã¨ã®å¯¾å¿ï¼
perl APVM
PL_stack_base @PL_stack
PL_stack_sp $#PL_stack
dSP (nothing)
SP $#PL_stack
TOPs TOP
PUSHs(sv) PUSH($sv)
POPs POP
SPAGAIN (nothing)
PUTBACK (nothing)
EXTEND(SP, n) (nothing)
See also F<pp.h>.
=head2 The Perl Stack Marker (PL_markstack)
å¯å¤é·å¼æ°ãæ±ãããã®ã¹ã¿ãã¯ã®ãã¼ã«ã¼ã§ãã
äºé
æ¼ç®åãªã©ã¯å¼æ°ã®æ°ãåºå®ã§ããï¼C<print>ã®ããã«å¼æ°ã®æ°ãå¯å¤é·ã§ããçµã¿è¾¼ã¿é¢æ°ãããã¾ããå¯å¤é·å¼æ°ãæ±ãããã«ã¯ï¼å¼æ°ã¹ã¿ãã¯ä¸ã§å¼æ°ãå§ã¾ãä½ç½®ãä¿åããå¿...
lib/Acme/Perl/VM/JA.pod view on Meta::CPAN
RETURN;
}
ãã¯ããããã¤ãå±éããã¨ä»¥ä¸ã®ããã«ãªãã¾ãã
PP(pp_const)
{
dSP;
EXTEND(SP, 1);
PUSHs(cSVOPx_sv(PL_op));
PUTBACK;
return PL_op->next;
}
ä¸ã¤ã²ã¨ã¤ãé ã«è¿½ãã¨ä»¥ä¸ã®ããã«ãªãã¾ãã
=over 4
=item C<dSP>
ãã¼ã«ã«ã¹ã¿ãã¯ãã¤ã³ã¿å¤æ°(SP)ã宣è¨ãï¼ã°ãã¼ãã«ã¹ã¿ãã¯ãã¤ã³ã¿ã®å¤ã§åæåãã¾ãã
lib/Acme/Perl/VM/JA.pod view on Meta::CPAN
ã¹ã¿ãã¯ãã¤ã³ã¿ã«å¤ã1ã¤ããã·ã¥ãããã¨ã宣è¨ãã¾ãããã®ã¨ãï¼å¿
è¦ã«å¿ãã¦ã¹ã¿ãã¯ã¯æ¡å¼µããã¾ãã
=item C<cSVOPx_sv(PL_op)>
ç¾å¨å®è¡ä¸ã®opcodeã®svãã£ã¼ã«ããåç
§ãã¾ãã
=item C<PUSH(sv)>
ã¹ã¿ãã¯ãã¤ã³ã¿ãéãã¦å¼æ°ã¹ã¿ãã¯ã«å¤ã1ã¤ããã·ã¥ãã¾ãã
=item C<PUTBACK>
ãã¼ã«ã«ã¹ã¿ãã¯ãã¤ã³ã¿ãã°ãã¼ãã«ã¹ã¿ãã¯ãã¤ã³ã¿å¤æ°ã«æ»ãã¾ãã
=item C<< return PL_op->op_next >>
次ã«å®è¡ããopcodeãè¿ãã¾ãã
OP_CONSTã§ããã°å¯è½æ§ã®ããããã°ã©ã ã®çµè·¯ã¯å¸¸ã«ä¸ã¤ã§ããï¼OP_COND_EXPRã®ãããªå¶å¾¡ãæ
ãopcodeã§ããã°C<< PL_op->next >>以å¤ã®opcodeãè¿ããã¨ãããã¾ãã
=back
lib/Acme/Perl/VM/PP.pm view on Meta::CPAN
#
# dSP (nothing)
# SP $#PL_stack
# *SP $PL_stack[-1]
# dMARK my $mark = POPMARK
# MARK $mark
# *MARK $PL_stack[$mark]
# dORIGMARK my $origmark = $mark
# ORIGMARK $origmark
# SPAGAIN (nothing)
# PUTBACK (nothing)
sub pp_nextstate{
$PL_curcop = $PL_op;
$#PL_stack = $PL_cxstack[-1]->oldsp;
FREETMPS;
return $PL_op->next;
}
( run in 0.454 second using v1.01-cache-2.11-cpan-4e96b696675 )