Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Macro
object rpncalc2 {
	operands = []
	hasOperands(n)
	plus()
	token = "+"
	operand = ...
}

object "1: plus" as plus1 {
}

rpncalc2 <-left- plus1
plus-funksjonen er akkurat kalt fra elif-grenen i while-løkka. plus-arket refererer til rpncalc2-arket, fordi plus-funksjonen selv er definert i rpncalc2-arket. Dermed kan koden i plus-funksjonen referere til variabler (og funksjoner) i rpncalc2-arket.
PlantUML Macro
object rpncalc2 {
	operands = []
	hasOperands(n)
	plus()
	token = "+"
	operand = ...
}

object "1: plus" as plus1 {
}
object "1: hasOperands" as hasOperands1 {
	n = 2
}

rpncalc2 <-- plus1
rpncalc2 <-- hasOperands1

plus1 ..> hasOperands1
plus-funksjonen har akkurat kalt hasOperands. Vi har nå to aktive funksjonsark, og merk den stiplete linjen angir at plus-arket har aktivert hasOperands-arket. Merk hvordan begge refererer til rpncalc2-arket, fordi både plus- og hasOperands-funksjonene selv er definert der. Men selv om hasOperands-arket ble aktivert av plus-funksjonen, så refererer det ikke til plus-arket.

...

Code Block
languagepython
operands = []

def isOperand(token): ...
def hasOperands(n): ...

def plus(): ...
def minus(): ...

def main():
	while (True):
    	...
	print("program exited")

main()
PlantUML Macro
object rpncalc2 {
	operands = []
	hasOperands(n)
	plus()
	main()
}

object "1: main" as main1 {
	token = "+"
	operand = ...
}

object "1: plus" as plus1 {
}
object "1: hasOperands" as hasOperands1 {
	n = 2
}

rpncalc2 <-- main1
rpncalc2 <-- plus1
rpncalc2 <-- hasOperands1

main1 ..> plus1
plus1 ..> hasOperands1

Hele rpncalc2.py

...