コード例 #1
0
    public ES_AstNamespace(
        ES_AstDottableIdentifier name, ES_AstNode? [] contents,
        EchelonScriptToken namespaceTk, EchelonScriptToken closeBraceTk
        ) : base(1)
    {
        NamespaceName = name;
        Contents      = contents;

        bounds = new ES_AstNodeBounds {
            StartPos = namespaceTk.TextStartPos,
            EndPos   = closeBraceTk.TextEndPos,
        };
    }
コード例 #2
0
    public ES_AbstractSyntaxTree(
        ReadOnlyMemory <char> source, ReadOnlyMemory <char> fileName,
        ES_AstImportStatement [] imports, ES_AstTypeAlias [] aliases, ES_AstNamespace [] namespaces,
        ES_AstNodeBounds bounds
        ) : base(1)
    {
        Source   = source;
        FileName = fileName;

        ImportStatements = imports;
        TypeAliases      = aliases;
        Namespaces       = namespaces;

        this.bounds = bounds;
    }
コード例 #3
0
    private ES_NamespaceData?GetNamespace(SourceData src, ES_AstNodeBounds nodeBounds, ReadOnlySpan <char> namespaceStr)
    {
        var namespaceName = Environment !.IdPool.GetIdentifier(namespaceStr);

        if (!Environment !.Namespaces.TryGetValue(namespaceName, out var namespaceData))
        {
            var err = ES_FrontendErrors.GenNamespaceDoesntExist(
                namespaceStr.GetPooledString(),
                src,
                nodeBounds
                );
            errorList.Add(err);
            return(null);
        }

        return(namespaceData);
    }
コード例 #4
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenNoExplicitCast(string destType, string givenType, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = NoExplicitCast.Replace("{givenType}", givenType).Replace("{destType}", destType);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #5
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenInvalidExprTerm(string exprTerm, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = InvalidExprTerm.Replace("{exprTerm}", exprTerm);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #6
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenRepeatedInterfaceInList(string interfaceFqn, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = RepeatedInterfaceInList.Replace("{0}", interfaceFqn);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #7
0
 public EchelonScriptErrorMessage(SourceData sourceData, ES_AstNodeBounds bounds, string?message = null)
     : this(sourceData.Code, sourceData.FileName, bounds, message)
 {
 }
コード例 #8
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenNoSuchConstructor(string typeName, string signature, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = NoSuchConstructor.Replace("{typeName}", typeName).Replace("{signature}", signature);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #9
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenCantApplyIndexingToType(string typeName, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = CantApplyIndexingToType.Replace("{typeName}", typeName);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #10
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenNotEnoughFuncArgs(string funcName, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = NotEnoughFuncArgs.Replace("{funcName}", funcName);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #11
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenDuplicateSymbolDef(string symbolName, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = DuplicateSymbolDefinition.Replace("{symbolName}", symbolName);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #12
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenCantFindSymbol(string symbolName, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = CantFindSymbol.Replace("{symbolName}", symbolName);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #13
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenInaccessibleProtectionLevel(string symbolName, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = InaccessibleProtectionLevel.Replace("{symbolName}", symbolName);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #14
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenNamespaceDoesntExist(string nmName, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = NamespaceDoesntExist.Replace("{namespace}", nmName);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #15
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenCantApplyBinaryOp(string op, string lhs, string rhs, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = CantApplyBinaryOp.Replace("{op}", op).Replace("{lhs}", lhs).Replace("{rhs}", rhs);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #16
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenCantApplyUnaryOp(string op, string expr, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = CantApplyUnaryOp.Replace("{op}", op).Replace("{expr}", expr);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #17
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenMissingFuncArg(string argName, string funcName, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = MissingFuncArg.Replace("{argName}", argName).Replace("{funcName}", funcName);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #18
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenNoTypeNew(string typeName, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = NoTypeNew.Replace("{typeName}", typeName);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #19
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenWrongArgType(string argName, string argType, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = WrongArgType.Replace("{arg}", "\"{argName}\"").Replace("{argName}", argName).Replace("{argType}", argType);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #20
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenMissingReturnValue(string retType, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = MissingReturnValue.Replace("{retType}", retType);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #21
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenArgNeedsType(int argNum, string argType, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = ArgNeedsType.Replace("{arg}", argNum.ToString()).Replace("{argType}", argType);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #22
0
ファイル: Errors.cs プロジェクト: Doom2fan/EchelonScript
    public static EchelonScriptErrorMessage GenInvalidInheritance(string symbolName, SourceData src, ES_AstNodeBounds errorBounds)
    {
        var errorMessage = InvalidInheritance.Replace("{0}", symbolName);

        return(new EchelonScriptErrorMessage(src, errorBounds, errorMessage));
    }
コード例 #23
0
    public EchelonScriptErrorMessage(ReadOnlySpan <char> srcText, ReadOnlyMemory <char> fileName, ES_AstNodeBounds bounds, string?message = null)
    {
        Message = message;

        StartPos = bounds.StartPos;
        Length   = bounds.EndPos - bounds.StartPos;

        EchelonScriptTokenizer.CalcLine(srcText, StartPos, out var curLine, out var curLineStart);
        FileName = fileName.Span.GetPooledString();
        Line     = curLine;
        Column   = EchelonScriptTokenizer.CalcColumn(srcText, curLineStart, StartPos);
    }