|
|
|
/***************************************************************************
|
|
|
|
begin : Sat Feb 08 2003
|
|
|
|
copyright : (C) 2003 by Alexander Blum
|
|
|
|
email : blum@kewbee.de
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
/***************************************************************************
|
|
|
|
* *
|
|
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
|
|
* it under the terms of the GNU General Public License as published by *
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
|
|
* (at your option) any later version. *
|
|
|
|
* *
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
#include "aswriter.h"
|
|
|
|
#include "../association.h"
|
|
|
|
#include "../classifier.h"
|
|
|
|
#include "../operation.h"
|
|
|
|
#include "../umldoc.h"
|
|
|
|
#include "../attribute.h"
|
|
|
|
|
|
|
|
#include <kdebug.h>
|
|
|
|
#include <tqregexp.h>
|
|
|
|
#include <tqtextstream.h>
|
|
|
|
|
|
|
|
ASWriter::ASWriter() {
|
|
|
|
}
|
|
|
|
|
|
|
|
ASWriter::~ASWriter() {}
|
|
|
|
|
|
|
|
|
|
|
|
void ASWriter::writeClass(UMLClassifier *c)
|
|
|
|
{
|
|
|
|
if(!c)
|
|
|
|
{
|
|
|
|
kDebug()<<"Cannot write class of NULL concept!" << endl;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
TQString classname = cleanName(c->getName());
|
|
|
|
TQString fileName = c->getName().lower();
|
|
|
|
|
|
|
|
//find an appropriate name for our file
|
|
|
|
fileName = findFileName(c,".as");
|
|
|
|
if (fileName.isEmpty())
|
|
|
|
{
|
|
|
|
emit codeGenerated(c, false);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
TQFile fileas;
|
|
|
|
if(!openFile(fileas,fileName))
|
|
|
|
{
|
|
|
|
emit codeGenerated(c, false);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
TQTextStream as(&fileas);
|
|
|
|
|
|
|
|
//////////////////////////////
|
|
|
|
//Start generating the code!!
|
|
|
|
/////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
//try to find a heading file (license, coments, etc)
|
|
|
|
TQString str;
|
|
|
|
str = getHeadingFile(".as");
|
|
|
|
if(!str.isEmpty())
|
|
|
|
{
|
|
|
|
str.replace(TQRegExp("%filename%"),fileName+".as");
|
|
|
|
str.replace(TQRegExp("%filepath%"),fileas.name());
|
|
|
|
as << str << m_endl;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//write includes
|
|
|
|
UMLPackageList includes;
|
|
|
|
findObjectsRelated(c,includes);
|
|
|
|
for (UMLPackage *conc = includes.first(); conc; conc = includes.next())
|
|
|
|
{
|
|
|
|
TQString headerName = findFileName(conc, ".as");
|
|
|
|
if ( !headerName.isEmpty() )
|
|
|
|
{
|
|
|
|
as << "#include \"" << findFileName(conc,".as") << "\"" << m_endl;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
as << m_endl;
|
|
|
|
|
|
|
|
//Write class Documentation if there is somthing or if force option
|
|
|
|
if(forceDoc() || !c->getDoc().isEmpty())
|
|
|
|
{
|
|
|
|
as << m_endl << "/**" << m_endl;
|
|
|
|
as << " * class " << classname << m_endl;
|
|
|
|
as << formatDoc(c->getDoc()," * ");
|
|
|
|
as << " */" << m_endl << m_endl;
|
|
|
|
}
|
|
|
|
|
|
|
|
UMLClassifierList superclasses = c->getSuperClasses();
|
|
|
|
UMLAssociationList aggregations = c->getAggregations();
|
|
|
|
UMLAssociationList compositions = c->getCompositions();
|
|
|
|
|
|
|
|
//check if class is abstract and / or has abstract methods
|
|
|
|
if(c->getAbstract() && !hasAbstractOps(c))
|
|
|
|
as << "/******************************* Abstract Class ****************************" << m_endl << " "
|
|
|
|
<< classname << " does not have any pure virtual methods, but its author" << m_endl
|
|
|
|
<< " defined it as an abstract class, so you should not use it directly." << m_endl
|
|
|
|
<< " Inherit from it instead and create only objects from the derived classes" << m_endl
|
|
|
|
<< "*****************************************************************************/" << m_endl << m_endl;
|
|
|
|
|
|
|
|
as << classname << " = function ()" << m_endl;
|
|
|
|
as << "{" << m_endl;
|
|
|
|
as << m_indentation << "this._init ();" << m_endl;
|
|
|
|
as << "}" << m_endl;
|
|
|
|
as << m_endl;
|
|
|
|
|
|
|
|
for(UMLClassifier *obj = superclasses.first();
|
|
|
|
obj; obj = superclasses.next()) {
|
|
|
|
as << classname << ".prototype = new " << cleanName(obj->getName()) << " ();" << m_endl;
|
|
|
|
}
|
|
|
|
|
|
|
|
as << m_endl;
|
|
|
|
|
|
|
|
const bool isClass = !c->isInterface();
|
|
|
|
if (isClass) {
|
|
|
|
|
|
|
|
UMLAttributeList atl = c->getAttributeList();
|
|
|
|
|
|
|
|
as << "/**" << m_endl;
|
|
|
|
TQString temp = "_init sets all " + classname +
|
|
|
|
" attributes to their default values. " +
|
|
|
|
"Make sure to call this method within your class constructor";
|
|
|
|
as << formatDoc(temp, " * ");
|
|
|
|
as << " */" << m_endl;
|
|
|
|
as << classname << ".prototype._init = function ()" << m_endl;
|
|
|
|
as << "{" << m_endl;
|
|
|
|
for(UMLAttribute *at = atl.first(); at ; at = atl.next())
|
|
|
|
{
|
|
|
|
if (forceDoc() || !at->getDoc().isEmpty())
|
|
|
|
{
|
|
|
|
as << m_indentation << "/**" << m_endl
|
|
|
|
<< formatDoc(at->getDoc(), m_indentation + " * ")
|
|
|
|
<< m_indentation << " */" << m_endl;
|
|
|
|
}
|
|
|
|
if(!at->getInitialValue().isEmpty())
|
|
|
|
{
|
|
|
|
as << m_indentation << "this.m_" << cleanName(at->getName()) << " = " << at->getInitialValue() << ";" << m_endl;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
as << m_indentation << "this.m_" << cleanName(at->getName()) << " = \"\";" << m_endl;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//associations
|
|
|
|
if (forceSections() || !aggregations.isEmpty ())
|
|
|
|
{
|
|
|
|
as << m_endl << m_indentation << "/**Aggregations: */" << m_endl;
|
|
|
|
writeAssociation(classname, aggregations , as );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if( forceSections() || !compositions.isEmpty())
|
|
|
|
{
|
|
|
|
as << m_endl << m_indentation << "/**Compositions: */" << m_endl;
|
|
|
|
writeAssociation(classname, compositions , as );
|
|
|
|
}
|
|
|
|
|
|
|
|
as << m_endl;
|
|
|
|
as << m_indentation << "/**Protected: */" << m_endl;
|
|
|
|
|
|
|
|
if (isClass) {
|
|
|
|
UMLAttributeList atl = c->getAttributeList();
|
|
|
|
for (UMLAttribute *at = atl.first(); at ; at = atl.next())
|
|
|
|
{
|
|
|
|
if (at->getVisibility() == Uml::Visibility::Protected)
|
|
|
|
{
|
|
|
|
as << m_indentation << "ASSetPropFlags (this, \"" << cleanName(at->getName()) << "\", 1);" << m_endl;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
UMLOperationList opList(c->getOpList());
|
|
|
|
for (UMLOperation *op = opList.first(); op; op = opList.next())
|
|
|
|
{
|
|
|
|
if (op->getVisibility() == Uml::Visibility::Protected)
|
|
|
|
{
|
|
|
|
as << m_indentation << "ASSetPropFlags (this, \"" << cleanName(op->getName()) << "\", 1);" << m_endl;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
as << m_endl;
|
|
|
|
as << m_indentation << "/**Private: */" << m_endl;
|
|
|
|
if (isClass) {
|
|
|
|
UMLAttributeList atl = c->getAttributeList();
|
|
|
|
for (UMLAttribute *at = atl.first(); at; at = atl.next())
|
|
|
|
{
|
|
|
|
if (at->getVisibility() == Uml::Visibility::Private)
|
|
|
|
{
|
|
|
|
as << m_indentation << "ASSetPropFlags (this, \"" << cleanName(at->getName()) << "\", 7);" << m_endl;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
for (UMLOperation *op = opList.first(); op; op = opList.next())
|
|
|
|
{
|
|
|
|
if (op->getVisibility() == Uml::Visibility::Protected)
|
|
|
|
{
|
|
|
|
as << m_indentation << "ASSetPropFlags (this, \"" << cleanName(op->getName()) << "\", 7);" << m_endl;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
as << "}" << m_endl;
|
|
|
|
|
|
|
|
as << m_endl;
|
|
|
|
|
|
|
|
//operations
|
|
|
|
UMLOperationList ops(c->getOpList());
|
|
|
|
writeOperations(classname, &ops, as);
|
|
|
|
|
|
|
|
as << m_endl;
|
|
|
|
|
|
|
|
//finish file
|
|
|
|
|
|
|
|
//close files and notfiy we are done
|
|
|
|
fileas.close();
|
|
|
|
emit codeGenerated(c, true);
|
|
|
|
}
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Helper Methods
|
|
|
|
|
|
|
|
|
|
|
|
void ASWriter::writeAssociation(TQString& classname, UMLAssociationList& assocList , TQTextStream &as )
|
|
|
|
{
|
|
|
|
for(UMLAssociation *a = assocList.first(); a; a = assocList.next())
|
|
|
|
{
|
|
|
|
// association side
|
|
|
|
Uml::Role_Type role = a->getObject(Uml::A)->getName() == classname ? Uml::B:Uml::A;
|
|
|
|
|
|
|
|
TQString roleName(cleanName(a->getRoleName(role)));
|
|
|
|
|
|
|
|
if (!roleName.isEmpty()) {
|
|
|
|
|
|
|
|
// association doc
|
|
|
|
if (forceDoc() || !a->getDoc().isEmpty()) {
|
|
|
|
as << m_indentation << "/**" << m_endl
|
|
|
|
<< formatDoc(a->getDoc(), m_indentation + " * ")
|
|
|
|
<< m_indentation << " */" << m_endl;
|
|
|
|
}
|
|
|
|
|
|
|
|
// role doc
|
|
|
|
if (forceDoc() || !a->getRoleDoc(role).isEmpty()) {
|
|
|
|
as << m_indentation << "/**" << m_endl
|
|
|
|
<< formatDoc(a->getRoleDoc(role), m_indentation + " * ")
|
|
|
|
<< m_indentation << " */" << m_endl;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool okCvt;
|
|
|
|
int nMulti = a->getMulti(role).toInt(&okCvt,10);
|
|
|
|
bool isNotMulti = a->getMulti(role).isEmpty() || (okCvt && nMulti == 1);
|
|
|
|
|
|
|
|
TQString typeName(cleanName(a->getObject(role)->getName()));
|
|
|
|
|
|
|
|
if (isNotMulti)
|
|
|
|
as << m_indentation << "this.m_" << roleName << " = new " << typeName << "();" << m_endl;
|
|
|
|
else
|
|
|
|
as << m_indentation << "this.m_" << roleName << " = new Array();" << m_endl;
|
|
|
|
|
|
|
|
// role visibility
|
|
|
|
if (a->getVisibility(role) == Uml::Visibility::Private)
|
|
|
|
{
|
|
|
|
as << m_indentation << "ASSetPropFlags (this, \"m_" << roleName << "\", 7);" << m_endl;
|
|
|
|
}
|
|
|
|
else if (a->getVisibility(role)== Uml::Visibility::Protected)
|
|
|
|
{
|
|
|
|
as << m_indentation << "ASSetPropFlags (this, \"m_" << roleName << "\", 1);" << m_endl;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void ASWriter::writeOperations(TQString classname, UMLOperationList *opList, TQTextStream &as)
|
|
|
|
{
|
|
|
|
UMLOperation *op;
|
|
|
|
UMLAttributeList atl;
|
|
|
|
UMLAttribute *at;
|
|
|
|
|
|
|
|
for(op = opList->first(); op; op = opList->next())
|
|
|
|
{
|
|
|
|
atl = op -> getParmList();
|
|
|
|
//write method doc if we have doc || if at least one of the params has doc
|
|
|
|
bool writeDoc = forceDoc() || !op->getDoc().isEmpty();
|
|
|
|
for (at = atl.first(); at ; at = atl.next())
|
|
|
|
writeDoc |= !at->getDoc().isEmpty();
|
|
|
|
|
|
|
|
if( writeDoc ) //write method documentation
|
|
|
|
{
|
|
|
|
as << "/**" << m_endl << formatDoc(op->getDoc()," * ");
|
|
|
|
|
|
|
|
for (at = atl.first(); at; at = atl.next()) //write parameter documentation
|
|
|
|
{
|
|
|
|
if(forceDoc() || !at->getDoc().isEmpty())
|
|
|
|
{
|
|
|
|
as << " * @param " + cleanName(at->getName())<<m_endl;
|
|
|
|
as << formatDoc(at->getDoc()," * ");
|
|
|
|
}
|
|
|
|
}//end for : write parameter documentation
|
|
|
|
as << " */" << m_endl;
|
|
|
|
}//end if : write method documentation
|
|
|
|
|
|
|
|
as << classname << ".prototype." << cleanName(op->getName()) << " = function " << "(";
|
|
|
|
|
|
|
|
int i= atl.count();
|
|
|
|
int j=0;
|
|
|
|
for (at = atl.first(); at; at = atl.next(),j++)
|
|
|
|
{
|
|
|
|
as << cleanName(at->getName())
|
|
|
|
<< (!(at->getInitialValue().isEmpty()) ? (TQString(" = ")+at->getInitialValue()) : TQString(""))
|
|
|
|
<< ((j < i-1)?", ":"");
|
|
|
|
}
|
|
|
|
as << ")" << m_endl << "{" << m_endl <<
|
|
|
|
m_indentation << m_endl << "}" << m_endl;
|
|
|
|
as << m_endl << m_endl;
|
|
|
|
}//end for
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* returns "ActionScript"
|
|
|
|
*/
|
|
|
|
Uml::Programming_Language ASWriter::getLanguage() {
|
|
|
|
return Uml::pl_ActionScript;
|
|
|
|
}
|
|
|
|
|
|
|
|
const TQStringList ASWriter::reservedKeywords() const {
|
|
|
|
|
|
|
|
static TQStringList keywords;
|
|
|
|
|
|
|
|
if ( keywords.isEmpty() ) {
|
|
|
|
keywords << "abs"
|
|
|
|
<< "acos"
|
|
|
|
<< "add"
|
|
|
|
<< "addListener"
|
|
|
|
<< "addProperty"
|
|
|
|
<< "align"
|
|
|
|
<< "_alpha"
|
|
|
|
<< "and"
|
|
|
|
<< "appendChild"
|
|
|
|
<< "apply"
|
|
|
|
<< "Array"
|
|
|
|
<< "asin"
|
|
|
|
<< "atan"
|
|
|
|
<< "atan2"
|
|
|
|
<< "attachMovie"
|
|
|
|
<< "attachSound"
|
|
|
|
<< "attributes"
|
|
|
|
<< "autoSize"
|
|
|
|
<< "background"
|
|
|
|
<< "backgroundColor"
|
|
|
|
<< "BACKSPACE"
|
|
|
|
<< "beginFill"
|
|
|
|
<< "beginGradientFill"
|
|
|
|
<< "blockIndent"
|
|
|
|
<< "bold"
|
|
|
|
<< "Boolean"
|
|
|
|
<< "border"
|
|
|
|
<< "borderColor"
|
|
|
|
<< "bottomScroll"
|
|
|
|
<< "break"
|
|
|
|
<< "bullet"
|
|
|
|
<< "call"
|
|
|
|
<< "callee"
|
|
|
|
<< "caller"
|
|
|
|
<< "capabilities"
|
|
|
|
<< "CAPSLOCK"
|
|
|
|
<< "case"
|
|
|
|
<< "ceil"
|
|
|
|
<< "charAt"
|
|
|
|
<< "charCodeAt"
|
|
|
|
<< "childNodes"
|
|
|
|
<< "chr"
|
|
|
|
<< "clear"
|
|
|
|
<< "clearInterval"
|
|
|
|
<< "cloneNode"
|
|
|
|
<< "close"
|
|
|
|
<< "color"
|
|
|
|
<< "Color"
|
|
|
|
<< "comment"
|
|
|
|
<< "concat"
|
|
|
|
<< "connect"
|
|
|
|
<< "contentType"
|
|
|
|
<< "continue"
|
|
|
|
<< "CONTROL"
|
|
|
|
<< "cos"
|
|
|
|
<< "createElement"
|
|
|
|
<< "createEmptyMovieClip"
|
|
|
|
<< "createTextField"
|
|
|
|
<< "createTextNode"
|
|
|
|
<< "_currentframe"
|
|
|
|
<< "curveTo"
|
|
|
|
<< "Date"
|
|
|
|
<< "default"
|
|
|
|
<< "delete"
|
|
|
|
<< "DELETEKEY"
|
|
|
|
<< "do"
|
|
|
|
<< "docTypeDecl"
|
|
|
|
<< "DOWN"
|
|
|
|
<< "_droptarget"
|
|
|
|
<< "duplicateMovieClip"
|
|
|
|
<< "duration"
|
|
|
|
<< "E"
|
|
|
|
<< "else"
|
|
|
|
<< "embedFonts"
|
|
|
|
<< "enabled"
|
|
|
|
<< "END"
|
|
|
|
<< "endFill"
|
|
|
|
<< "endinitclip"
|
|
|
|
<< "ENTER"
|
|
|
|
<< "eq"
|
|
|
|
<< "escape"
|
|
|
|
<< "ESCAPE"
|
|
|
|
<< "eval"
|
|
|
|
<< "evaluate"
|
|
|
|
<< "exp"
|
|
|
|
<< "false"
|
|
|
|
<< "firstChild"
|
|
|
|
<< "floor"
|
|
|
|
<< "focusEnabled"
|
|
|
|
<< "_focusrect"
|
|
|
|
<< "font"
|
|
|
|
<< "for"
|
|
|
|
<< "_framesloaded"
|
|
|
|
<< "fromCharCode"
|
|
|
|
<< "fscommand"
|
|
|
|
<< "function"
|
|
|
|
<< "ge"
|
|
|
|
<< "get"
|
|
|
|
<< "getAscii"
|
|
|
|
<< "getBeginIndex"
|
|
|
|
<< "getBounds"
|
|
|
|
<< "getBytesLoaded"
|
|
|
|
<< "getBytesTotal"
|
|
|
|
<< "getCaretIndex"
|
|
|
|
<< "getCode"
|
|
|
|
<< "getDate"
|
|
|
|
<< "getDay"
|
|
|
|
<< "getDepth"
|
|
|
|
<< "getEndIndex"
|
|
|
|
<< "getFocus"
|
|
|
|
<< "getFontList"
|
|
|
|
<< "getFullYear"
|
|
|
|
<< "getHours"
|
|
|
|
<< "getMilliseconds"
|
|
|
|
<< "getMinutes"
|
|
|
|
<< "getMonth"
|
|
|
|
<< "getNewTextFormat"
|
|
|
|
<< "getPan"
|
|
|
|
<< "getProperty"
|
|
|
|
<< "getRGB"
|
|
|
|
<< "getSeconds"
|
|
|
|
<< "getTextExtent"
|
|
|
|
<< "getTextFormat"
|
|
|
|
<< "getTime"
|
|
|
|
<< "getTimer"
|
|
|
|
<< "getTimezoneOffset"
|
|
|
|
<< "getTransform"
|
|
|
|
<< "getURL"
|
|
|
|
<< "getUTCDate"
|
|
|
|
<< "getUTCDay"
|
|
|
|
<< "getUTCFullYear"
|
|
|
|
<< "getUTCHours"
|
|
|
|
<< "getUTCMilliseconds"
|
|
|
|
<< "getUTCMinutes"
|
|
|
|
<< "getUTCMonth"
|
|
|
|
<< "getUTCSeconds"
|
|
|
|
<< "getVersion"
|
|
|
|
<< "getVolume"
|
|
|
|
<< "getYear"
|
|
|
|
<< "_global"
|
|
|
|
<< "globalToLocal"
|
|
|
|
<< "goto"
|
|
|
|
<< "gotoAndPlay"
|
|
|
|
<< "gotoAndStop"
|
|
|
|
<< "gt"
|
|
|
|
<< "hasAccessibility"
|
|
|
|
<< "hasAudio"
|
|
|
|
<< "hasAudioEncoder"
|
|
|
|
<< "hasChildNodes"
|
|
|
|
<< "hasMP3"
|
|
|
|
<< "hasVideoEncoder"
|
|
|
|
<< "height"
|
|
|
|
<< "_height"
|
|
|
|
<< "hide"
|
|
|
|
<< "_highquality"
|
|
|
|
<< "hitArea"
|
|
|
|
<< "hitTest"
|
|
|
|
<< "HOME"
|
|
|
|
<< "hscroll"
|
|
|
|
<< "html"
|
|
|
|
<< "htmlText"
|
|
|
|
<< "if"
|
|
|
|
<< "ifFrameLoaded"
|
|
|
|
<< "ignoreWhite"
|
|
|
|
<< "in"
|
|
|
|
<< "include"
|
|
|
|
<< "indent"
|
|
|
|
<< "indexOf"
|
|
|
|
<< "initclip"
|
|
|
|
<< "INSERT"
|
|
|
|
<< "insertBefore"
|
|
|
|
<< "install"
|
|
|
|
<< "instanceof"
|
|
|
|
<< "int"
|
|
|
|
<< "isActive"
|
|
|
|
<< "isDown"
|
|
|
|
<< "isFinite"
|
|
|
|
<< "isNaN"
|
|
|
|
<< "isToggled"
|
|
|
|
<< "italic"
|
|
|
|
<< "join"
|
|
|
|
<< "lastChild"
|
|
|
|
<< "lastIndexOf"
|
|
|
|
<< "le"
|
|
|
|
<< "leading"
|
|
|
|
<< "LEFT"
|
|
|
|
<< "leftMargin"
|
|
|
|
<< "length"
|
|
|
|
<< "_level"
|
|
|
|
<< "lineStyle"
|
|
|
|
<< "lineTo"
|
|
|
|
<< "list"
|
|
|
|
<< "LN10"
|
|
|
|
<< "LN2"
|
|
|
|
<< "load"
|
|
|
|
<< "loaded"
|
|
|
|
<< "loadMovie"
|
|
|
|
<< "loadMovieNum"
|
|
|
|
<< "loadSound"
|
|
|
|
<< "loadVariables"
|
|
|
|
<< "loadVariablesNum"
|
|
|
|
<< "LoadVars"
|
|
|
|
<< "localToGlobal"
|
|
|
|
<< "log"
|
|
|
|
<< "LOG10E"
|
|
|
|
<< "LOG2E"
|
|
|
|
<< "max"
|
|
|
|
<< "maxChars"
|
|
|
|
<< "maxhscroll"
|
|
|
|
<< "maxscroll"
|
|
|
|
<< "MAX_VALUE"
|
|
|
|
<< "mbchr"
|
|
|
|
<< "mblength"
|
|
|
|
<< "mbord"
|
|
|
|
<< "mbsubstring"
|
|
|
|
<< "method"
|
|
|
|
<< "min"
|
|
|
|
<< "MIN_VALUE"
|
|
|
|
<< "moveTo"
|
|
|
|
<< "multiline"
|
|
|
|
<< "_name"
|
|
|
|
<< "NaN"
|
|
|
|
<< "ne"
|
|
|
|
<< "NEGATIVE_INFINITY"
|
|
|
|
<< "new"
|
|
|
|
<< "newline"
|
|
|
|
<< "nextFrame"
|
|
|
|
<< "nextScene"
|
|
|
|
<< "nextSibling"
|
|
|
|
<< "nodeName"
|
|
|
|
<< "nodeType"
|
|
|
|
<< "nodeValue"
|
|
|
|
<< "not"
|
|
|
|
<< "null"
|
|
|
|
<< "Number"
|
|
|
|
<< "Object"
|
|
|
|
<< "on"
|
|
|
|
<< "onChanged"
|
|
|
|
<< "onClipEvent"
|
|
|
|
<< "onClose"
|
|
|
|
<< "onConnect"
|
|
|
|
<< "onData"
|
|
|
|
<< "onDragOut"
|
|
|
|
<< "onDragOver"
|
|
|
|
<< "onEnterFrame"
|
|
|
|
<< "onKeyDown"
|
|
|
|
<< "onKeyUp"
|
|
|
|
<< "onKillFocus"
|
|
|
|
<< "onLoad"
|
|
|
|
<< "onMouseDown"
|
|
|
|
<< "onMouseMove"
|
|
|
|
<< "onMouseUp"
|
|
|
|
<< "onPress"
|
|
|
|
<< "onRelease"
|
|
|
|
<< "onReleaseOutside"
|
|
|
|
<< "onResize"
|
|
|
|
<< "onRollOut"
|
|
|
|
<< "onRollOver"
|
|
|
|
<< "onScroller"
|
|
|
|
<< "onSetFocus"
|
|
|
|
<< "onSoundComplete"
|
|
|
|
<< "onUnload"
|
|
|
|
<< "onUpdate"
|
|
|
|
<< "onXML"
|
|
|
|
<< "or"
|
|
|
|
<< "ord"
|
|
|
|
<< "_parent"
|
|
|
|
<< "parentNode"
|
|
|
|
<< "parseFloat"
|
|
|
|
<< "parseInt"
|
|
|
|
<< "parseXML"
|
|
|
|
<< "password"
|
|
|
|
<< "PGDN"
|
|
|
|
<< "PGUP"
|
|
|
|
<< "PI"
|
|
|
|
<< "pixelAspectRatio"
|
|
|
|
<< "play"
|
|
|
|
<< "pop"
|
|
|
|
<< "position"
|
|
|
|
<< "POSITIVE_INFINITY"
|
|
|
|
<< "pow"
|
|
|
|
<< "prevFrame"
|
|
|
|
<< "previousSibling"
|
|
|
|
<< "prevScene"
|
|
|
|
<< "print"
|
|
|
|
<< "printAsBitmap"
|
|
|
|
<< "printAsBitmapNum"
|
|
|
|
<< "printNum"
|
|
|
|
<< "__proto__"
|
|
|
|
<< "prototype"
|
|
|
|
<< "push"
|
|
|
|
<< "_quality"
|
|
|
|
<< "random"
|
|
|
|
<< "registerClass"
|
|
|
|
<< "removeListener"
|
|
|
|
<< "removeMovieClip"
|
|
|
|
<< "removeNode"
|
|
|
|
<< "removeTextField"
|
|
|
|
<< "replaceSel"
|
|
|
|
<< "restrict"
|
|
|
|
<< "return"
|
|
|
|
<< "reverse"
|
|
|
|
<< "RIGHT"
|
|
|
|
<< "rightMargin"
|
|
|
|
<< "_root"
|
|
|
|
<< "_rotation"
|
|
|
|
<< "round"
|
|
|
|
<< "scaleMode"
|
|
|
|
<< "screenColor"
|
|
|
|
<< "screenDPI"
|
|
|
|
<< "screenResolutionX"
|
|
|
|
<< "screenResolutionY"
|
|
|
|
<< "scroll"
|
|
|
|
<< "selectable"
|
|
|
|
<< "send"
|
|
|
|
<< "sendAndLoad"
|
|
|
|
<< "set"
|
|
|
|
<< "setDate"
|
|
|
|
<< "setFocus"
|
|
|
|
<< "setFullYear"
|
|
|
|
<< "setHours"
|
|
|
|
<< "setInterval"
|
|
|
|
<< "setMask"
|
|
|
|
<< "setMilliseconds"
|
|
|
|
<< "setMinutes"
|
|
|
|
<< "setMonth"
|
|
|
|
<< "setNewTextFormat"
|
|
|
|
<< "setPan"
|
|
|
|
<< "setProperty"
|
|
|
|
<< "setRGB"
|
|
|
|
<< "setSeconds"
|
|
|
|
<< "setSelection"
|
|
|
|
<< "setTextFormat"
|
|
|
|
<< "setTime"
|
|
|
|
<< "setTransform"
|
|
|
|
<< "setUTCDate"
|
|
|
|
<< "setUTCFullYear"
|
|
|
|
<< "setUTCHours"
|
|
|
|
<< "setUTCMilliseconds"
|
|
|
|
<< "setUTCMinutes"
|
|
|
|
<< "setUTCMonth"
|
|
|
|
<< "setUTCSeconds"
|
|
|
|
<< "setVolume"
|
|
|
|
<< "setYear"
|
|
|
|
<< "shift"
|
|
|
|
<< "SHIFT"
|
|
|
|
<< "show"
|
|
|
|
<< "showMenu"
|
|
|
|
<< "sin"
|
|
|
|
<< "size"
|
|
|
|
<< "slice"
|
|
|
|
<< "sort"
|
|
|
|
<< "sortOn"
|
|
|
|
<< "Sound"
|
|
|
|
<< "_soundbuftime"
|
|
|
|
<< "SPACE"
|
|
|
|
<< "splice"
|
|
|
|
<< "split"
|
|
|
|
<< "sqrt"
|
|
|
|
<< "SQRT1_2"
|
|
|
|
<< "SQRT2"
|
|
|
|
<< "start"
|
|
|
|
<< "startDrag"
|
|
|
|
<< "status"
|
|
|
|
<< "stop"
|
|
|
|
<< "stopAllSounds"
|
|
|
|
<< "stopDrag"
|
|
|
|
<< "String"
|
|
|
|
<< "substr"
|
|
|
|
<< "substring"
|
|
|
|
<< "super"
|
|
|
|
<< "swapDepths"
|
|
|
|
<< "switch"
|
|
|
|
<< "TAB"
|
|
|
|
<< "tabChildren"
|
|
|
|
<< "tabEnabled"
|
|
|
|
<< "tabIndex"
|
|
|
|
<< "tabStops"
|
|
|
|
<< "tan"
|
|
|
|
<< "target"
|
|
|
|
<< "_target"
|
|
|
|
<< "targetPath"
|
|
|
|
<< "tellTarget"
|
|
|
|
<< "text"
|
|
|
|
<< "textColor"
|
|
|
|
<< "TextFormat"
|
|
|
|
<< "textHeight"
|
|
|
|
<< "textWidth"
|
|
|
|
<< "this"
|
|
|
|
<< "toggleHighQuality"
|
|
|
|
<< "toLowerCase"
|
|
|
|
<< "toString"
|
|
|
|
<< "_totalframes"
|
|
|
|
<< "toUpperCase"
|
|
|
|
<< "trace"
|
|
|
|
<< "trackAsMenu"
|
|
|
|
<< "true"
|
|
|
|
<< "type"
|
|
|
|
<< "typeof"
|
|
|
|
<< "undefined"
|
|
|
|
<< "underline"
|
|
|
|
<< "unescape"
|
|
|
|
<< "uninstall"
|
|
|
|
<< "unloadMovie"
|
|
|
|
<< "unloadMovieNum"
|
|
|
|
<< "unshift"
|
|
|
|
<< "unwatch"
|
|
|
|
<< "UP"
|
|
|
|
<< "updateAfterEvent"
|
|
|
|
<< "url"
|
|
|
|
<< "_url"
|
|
|
|
<< "useHandCursor"
|
|
|
|
<< "UTC"
|
|
|
|
<< "valueOf"
|
|
|
|
<< "var"
|
|
|
|
<< "variable"
|
|
|
|
<< "_visible"
|
|
|
|
<< "void"
|
|
|
|
<< "watch"
|
|
|
|
<< "while"
|
|
|
|
<< "width"
|
|
|
|
<< "_width"
|
|
|
|
<< "with"
|
|
|
|
<< "wordWrap"
|
|
|
|
<< "_x"
|
|
|
|
<< "XML"
|
|
|
|
<< "xmlDecl"
|
|
|
|
<< "XMLSocket"
|
|
|
|
<< "_xmouse"
|
|
|
|
<< "_xscale"
|
|
|
|
<< "_y"
|
|
|
|
<< "_ymouse";
|
|
|
|
}
|
|
|
|
|
|
|
|
return keywords;
|
|
|
|
}
|
|
|
|
|
|
|
|
#include "aswriter.moc"
|