/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

%{C++
#ifdef XP_OS2 // OS2 has UNKNOWN problems :)
#undef UNKNOWN
#endif
%}

/**
 * Enumeration of Programming Languages
 */

[scriptable, uuid(ea604e90-40ba-11d5-90bb-0010a4e73d9a)]
interface nsIProgrammingLanguage : nsISupports
{
    /**
     * Identifiers for programming languages.
     */
    const uint32_t UNKNOWN     = 0;
    const uint32_t CPLUSPLUS   = 1;
    const uint32_t JAVASCRIPT  = 2;
    const uint32_t PYTHON      = 3;
    const uint32_t PERL        = 4;
    const uint32_t JAVA        = 5;
    const uint32_t ZX81_BASIC  = 6;  // it could happen :)
    const uint32_t JAVASCRIPT2 = 7;
    const uint32_t RUBY =        8;
    const uint32_t PHP =         9;
    const uint32_t TCL =         10;
    // This list can grow indefinitely. Just don't ever change an existing item.
    const uint32_t MAX         = 10; // keep this as the largest index.
    
};
