Reputation: 7422
if i have to define a variable listed below i can make use of ''' to make my things work
def MainTable = '''
0S : MAKE-CALL
0# : MAKE-CALL
00 : MAKE-CALL
(=Emergency) : EMERGENCY-CALL(sip: "911 =domain =dialPhone)
(=N11) : MAKE-CALL(sip: #1v =domain =dialString)
(=SpeedDial) : MAKE-CALL(sip: #1v =domain =dialString)
(=PhoneNumber) : MAKE-CALL(sip: #1v =domain =dialPhone)
(=ImmediateVSCs) : RETURN
(=DelayedVSCs) : RETURN
(x{1-20})S : MAKE-CALL(sip: #1 =domain =dialPhone)
(x{1-20})# : MAKE-CALL(sip: #1 =domain =dialPhone)''';
the same variable if i define like this using single quote it throws me error
def MainTable = '
0S : MAKE-CALL
0# : MAKE-CALL
00 : MAKE-CALL
(=Emergency) : EMERGENCY-CALL(sip: "911 =domain =dialPhone)
(=N11) : MAKE-CALL(sip: #1v =domain =dialString)
(=SpeedDial) : MAKE-CALL(sip: #1v =domain =dialString)
(=PhoneNumber) : MAKE-CALL(sip: #1v =domain =dialPhone)
(=ImmediateVSCs) : RETURN
(=DelayedVSCs) : RETURN
(x{1-20})S : MAKE-CALL(sip: #1 =domain =dialPhone)
(x{1-20})# : MAKE-CALL(sip: #1 =domain =dialPhone)';
1 compilation error:
unexpected char: ''' at line: 1, column: 17
how can i use the MainTable variable using single quote, i don't want to put every thing in a single line
Upvotes: 0
Views: 1715
Reputation: 3124
You can do like in Java:
def MainTable = '\
0S : MAKE-CALL\
0# : MAKE-CALL\
00 : MAKE-CALL\
(=Emergency) : EMERGENCY-CALL(sip: "911 =domain =dialPhone)\
(=N11) : MAKE-CALL(sip: #1v =domain =dialString)\
(=SpeedDial) : MAKE-CALL(sip: #1v =domain =dialString)\
(=PhoneNumber) : MAKE-CALL(sip: #1v =domain =dialPhone)\
(=ImmediateVSCs) : RETURN\
(=DelayedVSCs) : RETURN\
(x{1-20})S : MAKE-CALL(sip: #1 =domain =dialPhone)\
(x{1-20})# : MAKE-CALL(sip: #1 =domain =dialPhone)';
But I fail to see the point in not using tripple single-quotes. If you want to strip the prepended spaces, you can just add .stripIndention() to your string expression:
def myMultilineString = '''
Some text
Some more text'''.stripIndent()
Upvotes: 4
Reputation: 171184
In addition to the correct answer by sbglasius, I quite like the stripMargin()
method, as you don't need to escape a blank line at the start of your String definition:
def mainTable = '''0S : MAKE-CALL
|0# : MAKE-CALL
|00 : MAKE-CALL
|(=Emergency) : EMERGENCY-CALL(sip: "911 =domain =dialPhone)
|(=N11) : MAKE-CALL(sip: #1v =domain =dialString)
|(=SpeedDial) : MAKE-CALL(sip: #1v =domain =dialString)
|(=PhoneNumber) : MAKE-CALL(sip: #1v =domain =dialPhone)
|(=ImmediateVSCs) : RETURN
|(=DelayedVSCs) : RETURN
|(x{1-20})S : MAKE-CALL(sip: #1 =domain =dialPhone)
|(x{1-20})# : MAKE-CALL(sip: #1 =domain =dialPhone)'''.stripMargin()
Upvotes: 5