Class PUSHC


public abstract class PUSHC extends Instruction

S-INSTRUCTION: PUSHC.

stack_instruction ::= pushc value

 value
	::= boolean_value | character_value
	::= integer_value | size_value
	::= real_value | longreal_value
	::= attribute_address | object_address
	::= general_address | program_address
	::= routine_address | record_value

text_value      ::= text long_string
boolean_value   ::= true | false 
character_value ::= c-char byte
integer_value   ::= c-int integer_literal:string
real_value      ::= c-real real_literal:string 
longreal_value  ::= c-lreal real_literal:string
size_value      ::= c-size type | nosize

attribute_address
		::= < c-dot attribute:tag >* c-aaddr attribute:tag
		::= anone

object_address
		::= c-oaddr global_or_const:tag
		::= onone

general_address
		::= < c-dot attr:tag >* c-gaddr global_or_const:tag
		::= gnone

program_address ::= c-paddr label:tag | nowhere
routine_address ::= c-raddr body:tag | nobody

record_value
		::= c-record structured_type
			+ endrecord


pushc constant:value
push( VAL, constant.TYPE, "value" );

A descriptor of the given value is pushed onto the stack.

Link to GitHub: Source File.

Author:
S-Port: Definition of S-code, Øystein Myhre Andersen
  • Constructor Details

    • PUSHC

      public PUSHC()
      Default Constructor
  • Method Details

    • ofScode

      public static void ofScode()
      Scans the remaining S-Code (if any) belonging to this instruction. Perform the specified stack operations (which may result in code generation). Finally: Emit an SVM_LOADC instruction.