Represents a link to an API of another application imported via "using" statement.
Inheritance: SObject
Esempio n. 1
0
 internal void AddAPIUsing(SAPIUsing apiUsing)
 {
     if (!_apiUsings.ContainsKey(apiUsing.APIClass))
         _apiUsings.Add(apiUsing.APIClass, apiUsing);
 }
        private SObject ExecuteImport(ScriptStatement statement)
        {
            // import apiClass from "moduleName"

            var exp = statement.Code;
            var parts = exp.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            if (parts.Length < 4 || parts[0] != "import" || parts[2] != "from")
                return ErrorHandler.ThrowError(ErrorType.SyntaxError, ErrorHandler.MESSAGE_SYNTAX_INVALID_IMPORT_STATEMENT);

            var apiClass = parts[1];
            var moduleName = exp.Remove(0, exp.IndexOf("\""));
            moduleName = moduleName.Trim('\"');

            if (!IsValidIdentifier(apiClass))
                return ErrorHandler.ThrowError(ErrorType.SyntaxError, ErrorHandler.MESSAGE_SYNTAX_MISSING_VAR_NAME);

            var apiUsing = new SAPIUsing(apiClass, moduleName);

            Context.AddAPIUsing(apiUsing);
            return apiUsing;
        }