com.io7m.jpra.compiler.core.resolver

## Interface JPRAResolverType

- All Known Implementing Classes:
    JPRAResolver

      public interface JPRAResolverType

  The type of name resolvers.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `StatementCommandType<IdentifierType,Untyped>` | `resolveCommandType(StatementCommandType<Unresolved,Untyped> s)` Resolve a `:type` command.
    `void` | `resolveEOF(Optional<com.io7m.jlexing.core.LexicalPosition<Path>> lex)` EOF has been encountered.
    `Optional<PackageNameQualified>` | `resolveGetCurrentPackage()`
    `Map<TypeName,TypeDeclType<IdentifierType,Untyped>>` | `resolveGetCurrentTypes()`
    `StatementPackageBegin<IdentifierType,Untyped>` | `resolvePackageBegin(StatementPackageBegin<Unresolved,Untyped> s)` Resolve a package begin statement.
    `StatementPackageEnd<IdentifierType,Untyped>` | `resolvePackageEnd(StatementPackageEnd<Unresolved,Untyped> s)` Resolve a package end statement.
    `StatementPackageImport<IdentifierType,Untyped>` | `resolvePackageImport(StatementPackageImport<Unresolved,Untyped> s)` Resolve a package import statement.
    `SizeExprType<IdentifierType,Untyped>` | `resolveSizeExpression(SizeExprType<Unresolved,Untyped> expr)` Resolve a size expression.
    `TypeDeclType<IdentifierType,Untyped>` | `resolveTypeDeclaration(TypeDeclType<Unresolved,Untyped> expr)` Resolve a type declaration.
    `TypeExprType<IdentifierType,Untyped>` | `resolveTypeExpression(TypeExprType<Unresolved,Untyped> expr)` Resolve a type expression.

- - ### Method Detail

    - #### resolveGetCurrentPackage

          Optional<PackageNameQualified> resolveGetCurrentPackage()

      Returns:
        The current package name, if any

    - #### resolveGetCurrentTypes

          Map<TypeName,TypeDeclType<IdentifierType,Untyped>> resolveGetCurrentTypes()

      Returns:
        A read-only view of the types that have been resolved in the package so far

    - #### resolvePackageBegin

          StatementPackageBegin<IdentifierType,Untyped> resolvePackageBegin(StatementPackageBegin<Unresolved,Untyped> s)
                                                                     throws JPRACompilerResolverException

      Resolve a package begin statement.
      Parameters:
        `s` - The statement
      Returns:
        A resolved statement
      Throws:
        `JPRACompilerResolverException` - On resolution errors

    - #### resolvePackageImport

          StatementPackageImport<IdentifierType,Untyped> resolvePackageImport(StatementPackageImport<Unresolved,Untyped> s)
                                                                       throws JPRACompilerResolverException

      Resolve a package import statement.
      Parameters:
        `s` - The statement
      Returns:
        A resolved import statement
      Throws:
        `JPRACompilerResolverException` - On resolution errors

    - #### resolvePackageEnd

          StatementPackageEnd<IdentifierType,Untyped> resolvePackageEnd(StatementPackageEnd<Unresolved,Untyped> s)
                                                                 throws JPRACompilerResolverException

      Resolve a package end statement.
      Parameters:
        `s` - The statement
      Returns:
        A resolved package end statement
      Throws:
        `JPRACompilerResolverException` - On resolution errors

    - #### resolveTypeDeclaration

          TypeDeclType<IdentifierType,Untyped> resolveTypeDeclaration(TypeDeclType<Unresolved,Untyped> expr)
                                                               throws JPRACompilerResolverException

      Resolve a type declaration.
      Parameters:
        `expr` - The input expression
      Returns:
        A type declaration
      Throws:
        `JPRACompilerResolverException` - On resolution errors

    - #### resolveTypeExpression

          TypeExprType<IdentifierType,Untyped> resolveTypeExpression(TypeExprType<Unresolved,Untyped> expr)
                                                              throws JPRACompilerResolverException

      Resolve a type expression.
      Parameters:
        `expr` - The input expression
      Returns:
        A type expression
      Throws:
        `JPRACompilerResolverException` - On resolution errors

    - #### resolveSizeExpression

          SizeExprType<IdentifierType,Untyped> resolveSizeExpression(SizeExprType<Unresolved,Untyped> expr)
                                                              throws JPRACompilerResolverException

      Resolve a size expression.
      Parameters:
        `expr` - The input expression
      Returns:
        A size expression
      Throws:
        `JPRACompilerResolverException` - On resolution errors

    - #### resolveCommandType

          StatementCommandType<IdentifierType,Untyped> resolveCommandType(StatementCommandType<Unresolved,Untyped> s)
                                                                   throws JPRACompilerResolverException

      Resolve a `:type` command.
      Parameters:
        `s` - A command
      Returns:
        A resolved command
      Throws:
        `JPRACompilerResolverException` - On resolution errors

    - #### resolveEOF

          void resolveEOF(Optional<com.io7m.jlexing.core.LexicalPosition<Path>> lex)
                   throws JPRACompilerResolverException

      EOF has been encountered.
      Parameters:
        `lex` - Lexical information, if any
      Throws:
        `JPRACompilerResolverException` - On resolution errors

Copyright © 2017 <code@io7m.com> http://io7m.com