code: def p_read(p):
      
      gl.DATA_IS_USED = True
      reads = []
  
      if p[2] is None:
          return
  
      for arg in p[2]:
          entry = arg.value
          if entry is None:
              p[0] = None
              return
  
          if isinstance(entry, symbols.VARARRAY):
              api.errmsg.syntax_error(p.lineno(1), "Cannot read '%s'. It's an array" % entry.name)
              p[0] = None
              return
  
          if isinstance(entry, symbols.VAR):
              if entry.class_ != CLASS.var:
                  api.errmsg.syntax_error_cannot_assing_not_a_var(p.lineno(2), entry.name)
                  p[0] = None
                  return
  
              entry.accessed = True
              if entry.type_ == TYPE.auto:
                  entry.type_ = _TYPE(gl.DEFAULT_TYPE)
                  api.errmsg.warning_implicit_type(p.lineno(2), p[2], entry.type_)
  
              reads.append(make_sentence('READ', entry))
              continue
  
          if isinstance(entry, symbols.ARRAYLOAD):
              reads.append(make_sentence('READ', symbols.ARRAYACCESS(entry.entry, entry.args, entry.lineno)))
              continue
  
          api.errmsg.syntax_error(p.lineno(1), "Syntax error. Can only read a variable or an array element")
          p[0] = None
          return
  
      p[0] = make_block(*reads)
docs: statement : READ arguments