- Lab 2 - Macro Control:
  - Create a new macro named `contlab2` in the TRAIN option tree.
  - The macro should take in two parameters: a table (`TAB=`) and a string (`PREFIX=`).
  - Your macro should print out all of the values in a table. If one of the values is a table (i.e. a nested table), you will need to recursively call your macro (i.e. call your macro from inside your macro) and print out the values in that table.
  - When you are done use UPDATE to add your macro to the dictionary and try it out. The output should look similar to this:

        nM> contlab2 reg reg
        REG.CONTLAB2=M: CONTLAB2,TAB=reg,PREFIX=reg
        REG.SHELL=nxm.sys.lib.Shell@fd66a5
        REG.HANDLERS.FILE.TMP=nxm.sys.lib.DataFile
        REG.HANDLERS.FILE.RAW=nxm.sys.lib.BaseFile
        REG.HANDLERS.FILE.PRM=nxm.sys.lib.DataFile
        ...
        REG.HANDLERS.FILE.TOC=nxm.map.lib.TocFile
        REG.HANDLERS.FILE.SID=nxm.map.lib.MrSidFile
        REG.HANDLERS.PACKET.SDDS=nxm.sys.lib.SDDSPacket
        REG.HANDLERS.PACKET.ICE=nxm.ice.lib.ICEPacket
        REG.HANDLERS.RESOURCE.RAMD=nxm.ice.lib.RamDiskResource
        REG.HANDLERS.RESOURCE.XMPIPE=nxm.sys.libxm.XmPipeResource

  - Hint: You can find out if a value is a Table by seeing if it is of type `nxm.sys.lib.Table`.
  - Hint: If on the `STARTMACRO` line you use `u:prefix`, you will get the "untranslated" value (i.e. it won't try to resolve any of the results).
  - Hint: If your macro is much longer than 15 lines, you are on the wrong track.