{ **************************************************************************** }
{                                                                              }
{    Pascal PreProcessor                                                       }
{    Copyright (c) 2001 Barry Kelly.                                           }
{    barry_j_kelly@hotmail.com                                                 }
{                                                                              }
{    The contents of this file are subject to the Mozilla Public License       }
{    Version 1.1 (the "License"); you may not use this file except in          }
{    compliance with the License. You may obtain a copy of the License at      }
{    http://www.mozilla.org/MPL/                                               }
{                                                                              }
{    Software distributed under the License is distributed on an "AS IS"       }
{    basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the   }
{    License for the specific language governing rights and limitations        }
{    under the License.                                                        }
{                                                                              }
{    The Original Code is ppp.dpr                                              }
{                                                                              }
{    The Initial Developer of the Original Code is Barry Kelly.                }
{    Portions created by Barry Kelly are Copyright (C) 2001                    }
{    Barry Kelly. All Rights Reserved.                                         }
{                                                                              }
{    Contributors:                                                             }
{      Robert Rossmair,                                                        }
{      Peter Thörnqvist,                                                       }
{      Florent Ouchet                                                          }
{                                                                              }
{    Alternatively, the contents of this file may be used under the terms      }
{    of the Lesser GNU Public License (the  "LGPL License"), in which case     }
{    the provisions of LGPL License are applicable instead of those            }
{    above.  If you wish to allow use of your version of this file only        }
{    under the terms of the LPGL License and not to allow others to use        }
{    your version of this file under the MPL, indicate your decision by        }
{    deleting  the provisions above and replace  them with the notice and      }
{    other provisions required by the LGPL License.  If you do not delete      }
{    the provisions above, a recipient may use your version of this file       }
{    under either the MPL or the LPGL License.                                 }
{                                                                              }
{ **************************************************************************** }

// Last modified: $Date$

{$APPTYPE CONSOLE}
program jppContainers;

uses
  SysUtils,
  JclPreProcessorTemplates,
  JclPreProcessorContainerTypes,
  JclPreProcessorAlgorithmsTemplates,
  JclPreProcessorArrayListsTemplates,
  JclPreProcessorArraySetsTemplates,
  JclPreProcessorBinaryTreesTemplates,
  JclPreProcessorContainerIntfTemplates,
  JclPreProcessorContainerKnownTypes,
  JclPreProcessorContainerTemplates,
  JclPreProcessorLinkedListsTemplates,
  JclPreProcessorQueuesTemplates,
  JclPreProcessorStacksTemplates,
  JclPreProcessorVectorsTemplates,
  JclPreProcessorTreesTemplates,
  JclPreProcessorContainer1DTemplates,
  JclPreProcessorContainer2DTemplates,
  JclPreProcessorContainerKnownMaps,
  JclPreProcessorHashMapsTemplates,
  JclPreProcessorHashSetsTemplates,
  JclPreProcessorSortedMapsTemplates,
  JppMain in 'JppMain.pas';

var
  CommandLine: string;
  i: Integer;
  State: TJclContainerParams;
begin
  try
    CheckJclContainers;
    State := TJclContainerParams.Create;
    try
      i := 1;
      if ParamCount = 0 then
        Syntax
      else
      begin
        while i <= ParamCount do
        begin
          CommandLine := CommandLine + ' ' + ParamStr(i);
          Inc(i);
        end;
        Params(State, PChar(CommandLine));
      end;
    finally
      State.Free;
    end;
  except
    on e: Exception do
      Writeln(e.Message);
  end;
end.
