github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/lang/expressions/statement_rules.go (about) 1 package expressions 2 3 import "github.com/lmorg/murex/utils/lists" 4 5 var tokeniseCurlyBraceCommands = []string{ 6 "if", "!if", 7 "foreach", "formap", 8 "switch", 9 } 10 11 func (tree *ParserT) tokeniseCurlyBrace() bool { 12 if tree.statement == nil { 13 return false 14 } 15 return lists.Match(tokeniseCurlyBraceCommands, string(tree.statement.command)) 16 } 17 18 func (tree *ParserT) tokeniseScalar() bool { 19 if tree.statement == nil || len(tree.statement.paramTemp) != 0 { 20 return true 21 } 22 23 switch string(tree.statement.command) { 24 25 case "set", "global", "export", 26 "!set", "!global", "!export", "unset": 27 if len(tree.statement.parameters) == 0 { 28 return false 29 } 30 31 case "foreach": 32 if len(tree.statement.parameters) == 0 { 33 return false 34 } 35 if len(tree.statement.parameters) == 1 { 36 s := string(tree.statement.parameters[0]) 37 if s == "--jmap" || s == "--step" { 38 return false 39 } 40 } 41 42 case "formap": 43 if len(tree.statement.parameters) == 0 { 44 return false 45 } 46 if len(tree.statement.parameters) == 1 { 47 s := string(tree.statement.parameters[0]) 48 if s == "--jmap" { 49 return false 50 } 51 } 52 53 case "is-null": 54 return false 55 } 56 57 return true 58 }