11package org.lflang.generator.uc
22
33import org.lflang.generator.PrependOperator
4- import org.lflang.ir.Reactor
54import org.lflang.ir.Action
5+ import org.lflang.ir.Reactor
66import org.lflang.ir.Shutdown
77import org.lflang.ir.Startup
88
99class UcActionGenerator (private val reactor : Reactor ) {
1010 private fun generateSelfStruct (action : Action ): String {
11- return if (action.type.isVoid) {
12- " LF_DEFINE_ACTION_STRUCT_VOID(${reactor.codeType} , ${action.lfName} , ${action.actionType} , ${action.getEffects().size} , ${action.getSources().size} , ${action.getObservers().size} , ${action.maxNumPendingEvents} );"
13- } else if (action.type.isArray) {
14- " LF_DEFINE_ACTION_STRUCT_ARRAY(${reactor.codeType} , ${action.lfName} , ${action.actionType} , ${action.getEffects().size} , ${action.getSources().size} , ${action.getObservers().size} , ${action.maxNumPendingEvents} , ${action.type.targetCode} , ${action.type.arrayLength} );"
15- } else {
16- " LF_DEFINE_ACTION_STRUCT(${reactor.codeType} , ${action.lfName} , ${action.actionType} , ${action.getEffects().size} , ${action.getSources().size} , ${action.getObservers().size} , ${action.maxNumPendingEvents} , ${action.type.targetCode} );"
17- }
11+ return if (action.type.isVoid) {
12+ " LF_DEFINE_ACTION_STRUCT_VOID(${reactor.codeType} , ${action.lfName} , ${action.actionType} , ${action.getEffects().size} , ${action.getSources().size} , ${action.getObservers().size} , ${action.maxNumPendingEvents} );"
13+ } else if (action.type.isArray) {
14+ " LF_DEFINE_ACTION_STRUCT_ARRAY(${reactor.codeType} , ${action.lfName} , ${action.actionType} , ${action.getEffects().size} , ${action.getSources().size} , ${action.getObservers().size} , ${action.maxNumPendingEvents} , ${action.type.targetCode} , ${action.type.arrayLength} );"
15+ } else {
16+ " LF_DEFINE_ACTION_STRUCT(${reactor.codeType} , ${action.lfName} , ${action.actionType} , ${action.getEffects().size} , ${action.getSources().size} , ${action.getObservers().size} , ${action.maxNumPendingEvents} , ${action.type.targetCode} );"
17+ }
1818 }
1919
2020 private fun generateCtor (action : Action ) =
@@ -26,68 +26,62 @@ class UcActionGenerator(private val reactor: Reactor) {
2626 .trimMargin()
2727 }
2828
29-
30- fun generateCtors (): String =
31- reactor.actions.joinToString(separator = " \n " ) { generateCtor(it) }
29+ fun generateCtors (): String = reactor.actions.joinToString(separator = " \n " ) { generateCtor(it) }
3230
3331 fun generateSelfStructs (): String =
3432 reactor.actions.joinToString(separator = " \n " ) { generateSelfStruct(it) }
3533
36-
3734 fun generateReactorStructFields (): String =
3835 reactor.actions.joinToString(
39- prefix = " // Actions and builtin triggers\n " , separator = " \n " , postfix = " \n " ) {
40- " LF_ACTION_INSTANCE(${reactor.codeType} , ${it.lfName} );"
41- }
36+ prefix = " // Actions and builtin triggers\n " , separator = " \n " , postfix = " \n " ) {
37+ " LF_ACTION_INSTANCE(${reactor.codeType} , ${it.lfName} );"
38+ }
4239
4340 private fun generateReactorCtorCode (action : Action ) =
4441 " LF_INITIALIZE_ACTION(${reactor.codeType} , ${action.lfName} , ${action.minDelay.toCCode()} , ${action.minSpacing.toCCode()} );"
4542
46-
4743 fun generateReactorCtorCodes (): String =
4844 reactor.actions.joinToString(
49- prefix = " // Initialize actions and builtin triggers\n " ,
50- separator = " \n " ,
51- postfix = " \n " ) {
52- generateReactorCtorCode(it)
53- }
45+ prefix = " // Initialize actions and builtin triggers\n " ,
46+ separator = " \n " ,
47+ postfix = " \n " ) {
48+ generateReactorCtorCode(it)
49+ }
5450}
5551
5652class BuiltInGenerator (private val reactor : Reactor ) {
57- private fun generateShutdownCtor () =
58- " LF_DEFINE_SHUTDOWN_CTOR(${reactor.codeType} );\n "
53+ private fun generateShutdownCtor () = " LF_DEFINE_SHUTDOWN_CTOR(${reactor.codeType} );\n "
5954
60- private fun generateStartUpCtor () =
61- " LF_DEFINE_STARTUP_CTOR(${reactor.codeType} );\n "
55+ private fun generateStartUpCtor () = " LF_DEFINE_STARTUP_CTOR(${reactor.codeType} );\n "
6256
63- private fun generateShutdownSelfStruct (trigger : Shutdown ) =
64- " LF_DEFINE_SHUTDOWN_STRUCT(${reactor.codeType} , ${trigger.getEffects().size} , ${trigger.getObservers().size} );\n "
57+ private fun generateShutdownSelfStruct (trigger : Shutdown ) =
58+ " LF_DEFINE_SHUTDOWN_STRUCT(${reactor.codeType} , ${trigger.getEffects().size} , ${trigger.getObservers().size} );\n "
6559
66- private fun generateStartupSelfStruct (trigger : Startup ) =
67- " LF_DEFINE_STARTUP_STRUCT(${reactor.codeType} , ${trigger.getEffects().size} , ${trigger.getObservers().size} );\n "
60+ private fun generateStartupSelfStruct (trigger : Startup ) =
61+ " LF_DEFINE_STARTUP_STRUCT(${reactor.codeType} , ${trigger.getEffects().size} , ${trigger.getObservers().size} );\n "
6862
63+ private fun generateReactorCtorCodeStartup () = " LF_INITIALIZE_STARTUP(${reactor.codeType} );\n "
6964
70- private fun generateReactorCtorCodeStartup () = " LF_INITIALIZE_STARTUP(${reactor.codeType} );\n "
71- private fun generateReactorCtorCodeShutdown () = " LF_INITIALIZE_SHUTDOWN(${reactor.codeType} );\n "
65+ private fun generateReactorCtorCodeShutdown () = " LF_INITIALIZE_SHUTDOWN(${reactor.codeType} );\n "
7266
73- fun generateCtors () : String {
74- var code = String ()
75- if (reactor.hasStartup) code + = generateStartUpCtor()
76- if (reactor.hasShutdown) code + = generateShutdownCtor()
77- return code
78- }
67+ fun generateCtors (): String {
68+ var code = String ()
69+ if (reactor.hasStartup) code + = generateStartUpCtor()
70+ if (reactor.hasShutdown) code + = generateShutdownCtor()
71+ return code
72+ }
7973
80- fun generateSelfStructs (): String {
81- var code = String ()
82- if (reactor.hasStartup) code + = generateStartupSelfStruct(reactor.startup!! )
83- if (reactor.hasShutdown) code + = generateShutdownSelfStruct(reactor.shutdown!! )
84- return code
85- }
74+ fun generateSelfStructs (): String {
75+ var code = String ()
76+ if (reactor.hasStartup) code + = generateStartupSelfStruct(reactor.startup!! )
77+ if (reactor.hasShutdown) code + = generateShutdownSelfStruct(reactor.shutdown!! )
78+ return code
79+ }
8680
87- fun generateReactorCtorCodes (): String {
88- var code = String ()
89- if (reactor.hasStartup) code + = generateReactorCtorCodeStartup()
90- if (reactor.hasShutdown) code + = generateReactorCtorCodeShutdown()
91- return code
92- }
81+ fun generateReactorCtorCodes (): String {
82+ var code = String ()
83+ if (reactor.hasStartup) code + = generateReactorCtorCodeStartup()
84+ if (reactor.hasShutdown) code + = generateReactorCtorCodeShutdown()
85+ return code
86+ }
9387}
0 commit comments