code: def processConstants(self, ctx):
      # Process constant declarations of the type: Constants F = 3, g = 9.81
      name = ctx.ID().getText().lower()
      if "=" in ctx.getText():
          self.symbol_table.update({name: name})
          # self.inputs.update({self.symbol_table[name]: self.getValue(ctx.getChild(2))})
          self.write(
              self.symbol_table[name]
              + " = "
              + "_sm.S("
              + self.getValue(ctx.getChild(2))
              + ")\n"
          )
          self.type.update({name: "constants"})
          return
  
      # Constants declarations of the type: Constants A, B
      else:
          if "{" not in ctx.getText():
              self.symbol_table[name] = name
              self.type[name] = "constants"
  
      # Process constant declarations of the type: Constants C+, D-
      if ctx.getChildCount() == 2:
          # This is set for declaring nonpositive=True and nonnegative=True
          if ctx.getChild(1).getText() == "+":
              self.sign[name] = "+"
          elif ctx.getChild(1).getText() == "-":
              self.sign[name] = "-"
      else:
          if "{" not in ctx.getText():
              self.sign[name] = "o"
  
      # Process constant declarations of the type: Constants K{4}, a{1:2, 1:2}, b{1:2}
      if "{" in ctx.getText():
          if ":" in ctx.getText():
              num1 = int(ctx.INT(0).getText())
              num2 = int(ctx.INT(1).getText()) + 1
          else:
              num1 = 1
              num2 = int(ctx.INT(0).getText()) + 1
  
          if ":" in ctx.getText():
              if "," in ctx.getText():
                  num3 = int(ctx.INT(2).getText())
                  num4 = int(ctx.INT(3).getText()) + 1
                  for i in range(num1, num2):
                      for j in range(num3, num4):
                          self.symbol_table[name + str(i) + str(j)] = (
                              name + str(i) + str(j)
                          )
                          self.type[
                              name + str(i) + str(j)
                          ] = "constants"
                          self.var_list.append(name + str(i) + str(j))
                          self.sign[name + str(i) + str(j)] = "o"
              else:
                  for i in range(num1, num2):
                      self.symbol_table[name + str(i)] = name + str(i)
                      self.type[name + str(i)] = "constants"
                      self.var_list.append(name + str(i))
                      self.sign[name + str(i)] = "o"
  
          elif "," in ctx.getText():
              for i in range(1, int(ctx.INT(0).getText()) + 1):
                  for j in range(1, int(ctx.INT(1).getText()) + 1):
                      self.symbol_table[name] = name + str(i) + str(j)
                      self.type[name + str(i) + str(j)] = "constants"
                      self.var_list.append(name + str(i) + str(j))
                      self.sign[name + str(i) + str(j)] = "o"
  
          else:
              for i in range(num1, num2):
                  self.symbol_table[name + str(i)] = name + str(i)
                  self.type[name + str(i)] = "constants"
                  self.var_list.append(name + str(i))
                  self.sign[name + str(i)] = "o"
  
      if "{" not in ctx.getText():
          self.var_list.append(name)
  
file_path: sympy/sympy/parsing/autolev/_listener_autolev_antlr.py
imports: import collections
  import warnings
  from sympy.external import import_module
label_desc: Use image node_id 8 for calling a global function with example usage: processConstants(ctx) without return types