OutlineParser
OutlineParser parses top-level declarations in source
to find declared classes, ignoring their bodies (which
must only have balanced braces). This is used to map class names to defining sources.
Type members
Inherited classlikes
Inherited types
Value members
Concrete methods
Inherited methods
Consume one token of the specified type, or signal an error if it is not there.
Consume one token of the specified type, or signal an error if it is not there.
- Returns:
The offset at the start of the token to accept
- Inherited from:
- Parser
semi = nl {nl} | ;' nl =
\n' // where allowed
semi = nl {nl} | ;' nl =
\n' // where allowed
- Inherited from:
- Parser
AccessQualifier ::= "[" (id | this) "]"
AccessQualifier ::= "[" (id | this) "]"
- Inherited from:
- Parser
Always add the syntactic mod
, but check and conditionally add semantic mod.flags
Always add the syntactic mod
, but check and conditionally add semantic mod.flags
- Inherited from:
- Parser
Adjust start of annotation or constructor to offset of preceding @ or new
Adjust start of annotation or constructor to offset of preceding @ or new
- Inherited from:
- Parser
Annotation ::= `@' SimpleType1 {ParArgumentExprs}
Annotation ::= `@' SimpleType1 {ParArgumentExprs}
- Inherited from:
- Parser
ArgTypes ::= Type {,' Type} | NamedTypeArg {
,' NamedTypeArg}
NamedTypeArg ::= id `=' Type
ArgTypes ::= Type {,' Type} | NamedTypeArg {
,' NamedTypeArg}
NamedTypeArg ::= id `=' Type
- Inherited from:
- Parser
ArgumentExprs ::= ParArgumentExprs | [nl] BlockExpr
ArgumentExprs ::= ParArgumentExprs | [nl] BlockExpr
- Inherited from:
- Parser
ArgumentPatterns ::= ‘(’ [Patterns] ‘)’ | ‘(’ [Patterns ‘,’] PatVar ‘*’ ‘)’
ArgumentPatterns ::= ‘(’ [Patterns] ‘)’ | ‘(’ [Patterns ‘,’] PatVar ‘*’ ‘)’
- Inherited from:
- Parser
If the last read offset is strictly greater than start
, assign tree
the span from start
to last read offset, with given point.
If the last offset is less than or equal to start, the tree t
did not
consume any source for its construction. In this case, don't assign a span yet,
but wait for its span to be determined by setChildSpans
when the
parent node is positioned.
If the last read offset is strictly greater than start
, assign tree
the span from start
to last read offset, with given point.
If the last offset is less than or equal to start, the tree t
did not
consume any source for its construction. In this case, don't assign a span yet,
but wait for its span to be determined by setChildSpans
when the
parent node is positioned.
- Inherited from:
- ParserCommon
Positions tree.
If t
does not have a span yet, set its span to the given one.
Positions tree.
If t
does not have a span yet, set its span to the given one.
- Inherited from:
- ParserCommon
Block ::= BlockStatSeq
Block ::= BlockStatSeq
- Note:
Return tree does not have a defined span.
- Inherited from:
- Parser
BlockStatSeq ::= { BlockStat semi } [Expr] BlockStat ::= Import | Annotations [implicit] [lazy] Def | Annotations LocalModifiers TmplDef | Extension | Expr1 |
BlockStatSeq ::= { BlockStat semi } [Expr] BlockStat ::= Import | Annotations [implicit] [lazy] Def | Annotations LocalModifiers TmplDef | Extension | Expr1 |
- Inherited from:
- Parser
Parse brace-enclosed body
and rewrite it to be an indentation region instead, if possible.
If possible means:
Parse brace-enclosed body
and rewrite it to be an indentation region instead, if possible.
If possible means:
- not inside (...), [...], case ... =>
- opening brace
{
is at end of line - closing brace
}
is at start of line - there is at least one token between the braces
- the closing brace is also at the end of the line, or it is followed by one of
then
,else
,do
,catch
,finally
,yield
, ormatch
. - the opening brace does not follow a
=>
. The reason for this condition is that rewriting back to braces does not work after=>
(since in most cases braces are omitted after a=>
it would be annoying if braces were inserted).
- Inherited from:
- Parser
CaseClause ::= ‘case’ Pattern [Guard] `=>' Block ExprCaseClause ::= ‘case’ Pattern [Guard] ‘=>’ Expr
CaseClause ::= ‘case’ Pattern [Guard] `=>' Block ExprCaseClause ::= ‘case’ Pattern [Guard] ‘=>’ Expr
- Inherited from:
- Parser
CaseClauses ::= CaseClause {CaseClause} TypeCaseClauses ::= TypeCaseClause {TypeCaseClause}
CaseClauses ::= CaseClause {CaseClause} TypeCaseClauses ::= TypeCaseClause {TypeCaseClause}
- Inherited from:
- Parser
Check that this is not the start of a statement that's indented relative to the current region.
Check that this is not the start of a statement that's indented relative to the current region.
- Inherited from:
- Parser
ClassConstr ::= [ClsTypeParamClause] [ConstrMods] ClsParamClauses
ClassConstr ::= [ClsTypeParamClause] [ConstrMods] ClsParamClauses
- Inherited from:
- Parser
ClassDef ::= id ClassConstr TemplateOpt
ClassDef ::= id ClassConstr TemplateOpt
- Inherited from:
- Parser
The region to eliminate when replacing a closing )
or }
that starts a new line
The )
or }
precedes in.lastOffset.
The region to eliminate when replacing a closing )
or }
that starts a new line
The )
or }
precedes in.lastOffset.
- Inherited from:
- Parser
Expr ::= [‘implicit’] FunParams =>' Expr BlockResult ::= implicit id [
:' InfixType] `=>' Block // Scala2 only
Expr ::= [‘implicit’] FunParams =>' Expr BlockResult ::= implicit id [
:' InfixType] `=>' Block // Scala2 only
- Inherited from:
- Parser
CompilationUnit ::= {package QualId semi} TopStatSeq
CompilationUnit ::= {package QualId semi} TopStatSeq
- Inherited from:
- Parser
ConstrApps ::= ConstrApp ({‘,’ ConstrApp} | {‘with’ ConstrApp})
ConstrApps ::= ConstrApp ({‘,’ ConstrApp} | {‘with’ ConstrApp})
- Inherited from:
- Parser
ConstrMods ::= {Annotation} [AccessModifier]
ConstrMods ::= {Annotation} [AccessModifier]
- Inherited from:
- Parser
ContextTypes ::= FunArgType {‘,’ FunArgType}
ContextTypes ::= FunArgType {‘,’ FunArgType}
- Inherited from:
- Parser
DefDef ::= DefSig [‘:’ Type] ‘=’ Expr
| this ParamClause ParamClauses =' ConstrExpr DefDcl ::= DefSig
:' Type
DefSig ::= id [DefTypeParamClause] DefParamClauses
| ExtParamClause [nl] [‘.’] id DefParamClauses
DefDef ::= DefSig [‘:’ Type] ‘=’ Expr
| this ParamClause ParamClauses =' ConstrExpr DefDcl ::= DefSig
:' Type
DefSig ::= id [DefTypeParamClause] DefParamClauses
| ExtParamClause [nl] [‘.’] id DefParamClauses
- Inherited from:
- Parser
Def ::= val PatDef
| var VarDef
| def DefDef
| type {nl} TypeDcl
| TmplDef
Dcl ::= val ValDcl
| var ValDcl
| def DefDcl
| type {nl} TypeDcl
EnumCase ::= case' (id ClassConstr [
extends' ConstrApps]] | ids)
Def ::= val PatDef
| var VarDef
| def DefDef
| type {nl} TypeDcl
| TmplDef
Dcl ::= val ValDcl
| var ValDcl
| def DefDcl
| type {nl} TypeDcl
EnumCase ::= case' (id ClassConstr [
extends' ConstrApps]] | ids)
- Inherited from:
- Parser
Drop (...) or { ... }, replacing the closing element with endStr
Drop (...) or { ... }, replacing the closing element with endStr
- Inherited from:
- Parser
Drop current token, if it is a then
or do
.
Drop current token, if it is a then
or do
.
- Inherited from:
- Parser
EnumCase = case' (id ClassConstr [
extends' ConstrApps] | ids)
EnumCase = case' (id ClassConstr [
extends' ConstrApps] | ids)
- Inherited from:
- Parser
EnumDef ::= id ClassConstr InheritClauses EnumBody
EnumDef ::= id ClassConstr InheritClauses EnumBody
- Inherited from:
- Parser
Enumerator ::= Generator | Guard {Guard} | Pattern1 `=' Expr
Enumerator ::= Generator | Guard {Guard} | Pattern1 `=' Expr
- Inherited from:
- Parser
Enumerators ::= Generator {semi Enumerator | Guard}
Enumerators ::= Generator {semi Enumerator | Guard}
- Inherited from:
- Parser
in.offset, except if this is at a new line, in which case lastOffset
is preferred.
in.offset, except if this is at a new line, in which case lastOffset
is preferred.
- Inherited from:
- ParserCommon
ExprsInParens ::= ExprInParens {`,' ExprInParens}
ExprsInParens ::= ExprInParens {`,' ExprInParens}
- Inherited from:
- Parser
ExtMethod ::= {Annotation [nl]} {Modifier} ‘def’ DefDef | Export
ExtMethod ::= {Annotation [nl]} {Modifier} ‘def’ DefDef | Export
- Inherited from:
- Parser
ExtMethods ::= ExtMethod | [nl] ‘{’ ExtMethod {semi ExtMethod ‘}’
ExtMethods ::= ExtMethod | [nl] ‘{’ ExtMethod {semi ExtMethod ‘}’
- Inherited from:
- Parser
Extension ::= ‘extension’ [DefTypeParamClause] {UsingParamClause} ‘(’ DefParam ‘)’ {UsingParamClause} ExtMethods
Extension ::= ‘extension’ [DefTypeParamClause] {UsingParamClause} ‘(’ DefParam ‘)’ {UsingParamClause} ExtMethods
- Inherited from:
- Parser
The position of the first XML literal encountered while parsing, NoSourcePosition if there were no XML literals.
The position of the first XML literal encountered while parsing, NoSourcePosition if there were no XML literals.
- Inherited from:
- Parser
In the tokens following the current one, does query
precede any of the tokens that
In the tokens following the current one, does query
precede any of the tokens that
- must start a statement, or
- separate two statements, or
- continue a statement (e.g.
else
, catch`), or - terminate the current scope?
- Inherited from:
- Parser
Is the following sequence the generators of a for-expression enclosed in (...)?
Is the following sequence the generators of a for-expression enclosed in (...)?
- Inherited from:
- Parser
Are the next token the "GivenSig" part of a given definition,
i.e. an identifier followed by type and value parameters, followed by :
?
Are the next token the "GivenSig" part of a given definition,
i.e. an identifier followed by type and value parameters, followed by :
?
- Inherited from:
- Parser
Is current ident a *
, and is it followed by a )
, , )
, ,EOF
? The latter two are not
syntactically valid, but we need to include them here for error recovery.
Is current ident a *
, and is it followed by a )
, , )
, ,EOF
? The latter two are not
syntactically valid, but we need to include them here for error recovery.
- Inherited from:
- Parser
ForExpr ::= ‘for’ ‘(’ Enumerators ‘)’ {nl} [‘do‘ | ‘yield’] Expr | ‘for’ ‘{’ Enumerators ‘}’ {nl} [‘do‘ | ‘yield’] Expr | ‘for’ Enumerators (‘do‘ | ‘yield’) Expr
ForExpr ::= ‘for’ ‘(’ Enumerators ‘)’ {nl} [‘do‘ | ‘yield’] Expr | ‘for’ ‘{’ Enumerators ‘}’ {nl} [‘do‘ | ‘yield’] Expr | ‘for’ Enumerators (‘do‘ | ‘yield’) Expr
- Inherited from:
- Parser
FunParamClause ::= ‘(’ TypedFunParam {‘,’ TypedFunParam } ‘)’
FunParamClause ::= ‘(’ TypedFunParam {‘,’ TypedFunParam } ‘)’
- Inherited from:
- Parser
FunParams ::= Bindings
| id
| _' Bindings ::=
(' [[‘erased’] Binding {,' Binding}]
)'
FunParams ::= Bindings
| id
| _' Bindings ::=
(' [[‘erased’] Binding {,' Binding}]
)'
- Inherited from:
- Parser
Generator ::= [‘case’] Pattern `<-' Expr
Generator ::= [‘case’] Pattern `<-' Expr
- Inherited from:
- Parser
GivenDef ::= [GivenSig] (AnnotType [‘=’ Expr] | StructuralInstance) GivenSig ::= [id] [DefTypeParamClause] {UsingParamClauses} ‘:’
GivenDef ::= [GivenSig] (AnnotType [‘=’ Expr] | StructuralInstance) GivenSig ::= [id] [DefTypeParamClause] {UsingParamClauses} ‘:’
- Inherited from:
- Parser
Accept identifier and return its name as a term name.
Accept identifier and return its name as a term name.
- Inherited from:
- Parser
if'
(' Expr )' {nl} Expr [[semi] else Expr]
if' Expr `then' Expr [[semi] else Expr]
if'
(' Expr )' {nl} Expr [[semi] else Expr]
if' Expr `then' Expr [[semi] else Expr]
- Inherited from:
- Parser
ImportExpr ::= SimpleRef {‘.’ id} ‘.’ ImportSpec | SimpleRef ‘as’ id ImportSpec ::= NamedSelector | WildcardSelector | ‘{’ ImportSelectors ‘}’ ImportSelectors ::= NamedSelector [‘,’ ImportSelectors] | WildCardSelector {‘,’ WildCardSelector} NamedSelector ::= id [‘as’ (id | ‘_’)] WildCardSelector ::= ‘*' | ‘given’ [InfixType]
ImportExpr ::= SimpleRef {‘.’ id} ‘.’ ImportSpec | SimpleRef ‘as’ id ImportSpec ::= NamedSelector | WildcardSelector | ‘{’ ImportSelectors ‘}’ ImportSelectors ::= NamedSelector [‘,’ ImportSelectors] | WildCardSelector {‘,’ WildCardSelector} NamedSelector ::= id [‘as’ (id | ‘_’)] WildCardSelector ::= ‘*' | ‘given’ [InfixType]
- Inherited from:
- Parser
Import ::= import' ImportExpr {‘,’ ImportExpr} Export ::=
export' ImportExpr {‘,’ ImportExpr}
Import ::= import' ImportExpr {‘,’ ImportExpr} Export ::=
export' ImportExpr {‘,’ ImportExpr}
- Inherited from:
- Parser
Issue an error at current offset that input is incomplete
Issue an error at current offset that input is incomplete
- Inherited from:
- Parser
Parse indentation region body
and rewrite it to be in braces instead
Parse indentation region body
and rewrite it to be in braces instead
- Inherited from:
- Parser
operand { infixop operand | MatchClause } [postfixop],
operand { infixop operand | MatchClause } [postfixop],
respecting rules of associativity and precedence.
- Value parameters:
- isOperator
the current token counts as an operator.
- maybePostfix
postfix operators are allowed.
- Inherited from:
- Parser
InfixPattern ::= SimplePattern {id [nl] SimplePattern}
InfixPattern ::= SimplePattern {id [nl] SimplePattern}
- Inherited from:
- Parser
InfixType ::= RefinedType {id [nl] RefinedType}
InfixType ::= RefinedType {id [nl] RefinedType}
- Inherited from:
- Parser
Is offset1 less or equally indented than offset2? This is the case if the characters between the preceding end-of-line and offset1 are a prefix of the characters between the preceding end-of-line and offset2.
Is offset1 less or equally indented than offset2? This is the case if the characters between the preceding end-of-line and offset1 are a prefix of the characters between the preceding end-of-line and offset2.
- Inherited from:
- Parser
Is current token a hard or soft modifier (in modifier position or not)?
Is current token a hard or soft modifier (in modifier position or not)?
- Inherited from:
- Parser
A '$' identifier is treated as a splice if followed by a {
.
A longer identifier starting with $
is treated as a splice/id combination
in a quoted block '{...'
A '$' identifier is treated as a splice if followed by a {
.
A longer identifier starting with $
is treated as a splice/id combination
in a quoted block '{...'
- Inherited from:
- Parser
Literal ::= SimpleLiteral | processedStringLiteral | symbolLiteral | ‘null’
Literal ::= SimpleLiteral | processedStringLiteral | symbolLiteral | ‘null’
- Value parameters:
- negOffset
The offset of a preceding `-' sign, if any. If the literal is not negated, negOffset == in.offset.
- Inherited from:
- Parser
MatchClause ::= match'
{' CaseClauses `}'
MatchClause ::= match'
{' CaseClauses `}'
- Inherited from:
- Parser
Create an import node and handle source version imports
Create an import node and handle source version imports
- Inherited from:
- Parser
{Annotation} {Modifier} Modifiers ::= {Modifier} LocalModifiers ::= {LocalModifier} AccessModifier ::= (private | protected) [AccessQualifier] Modifier ::= LocalModifier | AccessModifier | override | opaque LocalModifier ::= abstract | final | sealed | open | implicit | lazy | erased | inline | transparent
{Annotation} {Modifier} Modifiers ::= {Modifier} LocalModifiers ::= {LocalModifier} AccessModifier ::= (private | protected) [AccessQualifier] Modifier ::= LocalModifier | AccessModifier | override | opaque LocalModifier ::= abstract | final | sealed | open | implicit | lazy | erased | inline | transparent
- Inherited from:
- Parser
SimpleExpr ::= ‘new’ ConstrApp {with
ConstrApp} [TemplateBody]
| ‘new’ TemplateBody
SimpleExpr ::= ‘new’ ConstrApp {with
ConstrApp} [TemplateBody]
| ‘new’ TemplateBody
- Inherited from:
- Parser
Packaging ::= package QualId [nl] {' TopStatSeq
}'
Packaging ::= package QualId [nl] {' TopStatSeq
}'
- Inherited from:
- Parser
ParArgumentExprs ::= (' [‘using’] [ExprsInParens]
)'
| (' [ExprsInParens
,'] PostfixExpr `*' ')'
ParArgumentExprs ::= (' [‘using’] [ExprsInParens]
)'
| (' [ExprsInParens
,'] PostfixExpr `*' ')'
- Inherited from:
- Parser
ParArgumentExprss ::= {ParArgumentExprs}
ParArgumentExprss ::= {ParArgumentExprs}
Special treatment for arguments to primary constructor annotations.
(...) is considered an argument only if it does not look like a formal
parameter list, i.e. does not start with ( <annot>* <mod>* ident :
Furthermore, ()
is considered a annotation argument only if it comes first.
- Inherited from:
- Parser
ClsParamClause ::= ‘(’ [‘erased’] ClsParams ‘)’ | UsingClsParamClause UsingClsParamClause::= ‘(’ ‘using’ [‘erased’] (ClsParams | ContextTypes) ‘)’ ClsParams ::= ClsParam {‘,’ ClsParam} ClsParam ::= {Annotation}
ClsParamClause ::= ‘(’ [‘erased’] ClsParams ‘)’ | UsingClsParamClause UsingClsParamClause::= ‘(’ ‘using’ [‘erased’] (ClsParams | ContextTypes) ‘)’ ClsParams ::= ClsParam {‘,’ ClsParam} ClsParam ::= {Annotation}
DefParamClause ::= ‘(’ [‘erased’] DefParams ‘)’ | UsingParamClause UsingParamClause ::= ‘(’ ‘using’ [‘erased’] (DefParams | ContextTypes) ‘)’ DefParams ::= DefParam {‘,’ DefParam} DefParam ::= {Annotation} [‘inline’] Param
Param ::= id :' ParamType [
=' Expr]
- Returns:
the list of parameter definitions
- Inherited from:
- Parser
ClsParamClauses ::= {ClsParamClause} [[nl] ‘(’ [‘implicit’] ClsParams ‘)’] DefParamClauses ::= {DefParamClause} [[nl] ‘(’ [‘implicit’] DefParams ‘)’]
ClsParamClauses ::= {ClsParamClause} [[nl] ‘(’ [‘implicit’] ClsParams ‘)’] DefParamClauses ::= {DefParamClause} [[nl] ‘(’ [‘implicit’] DefParams ‘)’]
- Returns:
The parameter definitions
- Inherited from:
- Parser
This is the general parse entry point. Overridden by ScriptParser
This is the general parse entry point. Overridden by ScriptParser
- Inherited from:
- Parser
PatDef ::= ids [‘:’ Type] ‘=’ Expr
| Pattern2 [‘:’ Type] ‘=’ Expr
VarDef ::= PatDef
| id {,' id}
:' Type ='
_' (deprecated in 3.x)
ValDcl ::= id {,' id}
:' Type
VarDcl ::= id {,' id}
:' Type
PatDef ::= ids [‘:’ Type] ‘=’ Expr
| Pattern2 [‘:’ Type] ‘=’ Expr
VarDef ::= PatDef
| id {,' id}
:' Type ='
_' (deprecated in 3.x)
ValDcl ::= id {,' id}
:' Type
VarDcl ::= id {,' id}
:' Type
- Inherited from:
- Parser
PostfixExpr ::= InfixExpr [id [nl]]
InfixExpr ::= PrefixExpr
| InfixExpr id [nl] InfixExpr
| InfixExpr id :
IndentedExpr
| InfixExpr MatchClause
PostfixExpr ::= InfixExpr [id [nl]]
InfixExpr ::= PrefixExpr
| InfixExpr id [nl] InfixExpr
| InfixExpr id :
IndentedExpr
| InfixExpr MatchClause
- Inherited from:
- Parser
RefineStatSeq ::= RefineStat {semi RefineStat}
RefineStat ::= ‘val’ VarDcl
| ‘def’ DefDcl
| ‘type’ {nl} TypeDcl
(in reality we admit Defs and vars and filter them out afterwards in checkLegal
)
RefineStatSeq ::= RefineStat {semi RefineStat}
RefineStat ::= ‘val’ VarDcl
| ‘def’ DefDcl
| ‘type’ {nl} TypeDcl
(in reality we admit Defs and vars and filter them out afterwards in checkLegal
)
- Inherited from:
- Parser
rewrite code with (...) around the source code of t
rewrite code with (...) around the source code of t
- Inherited from:
- Parser
Accept identifier or match clause acting as a selector on given tree t
Accept identifier or match clause acting as a selector on given tree t
- Inherited from:
- Parser
SelfInvocation ::= this ArgumentExprs {ArgumentExprs}
SelfInvocation ::= this ArgumentExprs {ArgumentExprs}
- Inherited from:
- Parser
SimpleExpr ::= ‘new’ ConstrApp {with
ConstrApp} [TemplateBody]
| ‘new’ TemplateBody
| BlockExpr
| ‘$’ ‘{’ Block ‘}’
| Quoted
| quoteId
| SimpleExpr1 [_
]
SimpleExpr1 ::= literal
| xmlLiteral
| SimpleRef
| (
[ExprsInParens] )
| SimpleExpr .
id
| SimpleExpr .
MatchClause
| SimpleExpr (TypeArgs | NamedTypeArgs)
| SimpleExpr1 ArgumentExprs
| SimpleExpr1 :
IndentedExpr -- under language.experimental.fewerBraces
| SimpleExpr1 FunParams (‘=>’ | ‘?=>’) IndentedExpr -- under language.experimental.fewerBraces
IndentedExpr ::= indent (CaseClauses | Block) outdent
Quoted ::= ‘'’ ‘{’ Block ‘}’
| ‘'’ ‘[’ Type ‘]’
SimpleExpr ::= ‘new’ ConstrApp {with
ConstrApp} [TemplateBody]
| ‘new’ TemplateBody
| BlockExpr
| ‘$’ ‘{’ Block ‘}’
| Quoted
| quoteId
| SimpleExpr1 [_
]
SimpleExpr1 ::= literal
| xmlLiteral
| SimpleRef
| (
[ExprsInParens] )
| SimpleExpr .
id
| SimpleExpr .
MatchClause
| SimpleExpr (TypeArgs | NamedTypeArgs)
| SimpleExpr1 ArgumentExprs
| SimpleExpr1 :
IndentedExpr -- under language.experimental.fewerBraces
| SimpleExpr1 FunParams (‘=>’ | ‘?=>’) IndentedExpr -- under language.experimental.fewerBraces
IndentedExpr ::= indent (CaseClauses | Block) outdent
Quoted ::= ‘'’ ‘{’ Block ‘}’
| ‘'’ ‘[’ Type ‘]’
- Inherited from:
- Parser
SimpleLiteral ::= [‘-’] integerLiteral | [‘-’] floatingPointLiteral | booleanLiteral | characterLiteral | stringLiteral
SimpleLiteral ::= [‘-’] integerLiteral | [‘-’] floatingPointLiteral | booleanLiteral | characterLiteral | stringLiteral
- Inherited from:
- Parser
SimplePattern ::= PatVar
| Literal
| Quoted
| XmlPattern
| (' [Patterns]
)'
| SimplePattern1 [TypeArgs] [ArgumentPatterns]
SimplePattern1 ::= SimpleRef
| SimplePattern1 .' id PatVar ::= id |
_'
SimplePattern ::= PatVar
| Literal
| Quoted
| XmlPattern
| (' [Patterns]
)'
| SimplePattern1 [TypeArgs] [ArgumentPatterns]
SimplePattern1 ::= SimpleRef
| SimplePattern1 .' id PatVar ::= id |
_'
- Inherited from:
- Parser
SimpleRef ::= id | [id ‘.’] ‘this’ | [id ‘.’] ‘super’ [ClassQualifier] ‘.’ id
SimpleRef ::= id | [id ‘.’] ‘this’ | [id ‘.’] ‘super’ [ClassQualifier] ‘.’ id
- Inherited from:
- Parser
SimpleType ::= SimpleLiteral | ‘?’ SubtypeBounds | SimpleType1 | SimpeType ‘(’ Singletons ‘)’ -- under language.experimental.dependent, checked in Typer Singletons ::= Singleton {‘,’ Singleton}
SimpleType ::= SimpleLiteral | ‘?’ SubtypeBounds | SimpleType1 | SimpeType ‘(’ Singletons ‘)’ -- under language.experimental.dependent, checked in Typer Singletons ::= Singleton {‘,’ Singleton}
- Inherited from:
- Parser
SimpleType1 ::= id
| Singleton .' id | Singleton
.' type
| ‘(’ ArgTypes ‘)’
| Refinement
| ‘$’ ‘{’ Block ‘}’
| SimpleType1 TypeArgs
| SimpleType1 `#' id
SimpleType1 ::= id
| Singleton .' id | Singleton
.' type
| ‘(’ ArgTypes ‘)’
| Refinement
| ‘$’ ‘{’ Block ‘}’
| SimpleType1 TypeArgs
| SimpleType1 `#' id
- Inherited from:
- Parser
Singleton ::= SimpleRef | SimpleLiteral | Singleton ‘.’ id -- not yet | Singleton ‘(’ Singletons ‘)’ -- not yet | Singleton ‘[’ Types ‘]’
Singleton ::= SimpleRef | SimpleLiteral | Singleton ‘.’ id -- not yet | Singleton ‘(’ Singletons ‘)’ -- not yet | Singleton ‘[’ Types ‘]’
- Inherited from:
- Parser
SimpleExpr ::= spliceId | ‘$’ ‘{’ Block ‘}’) unless inside quoted pattern SimpleType ::= spliceId | ‘$’ ‘{’ Block ‘}’) unless inside quoted pattern
SimpleExpr ::= spliceId | ‘$’ ‘{’ Block ‘}’) unless inside quoted pattern SimpleType ::= spliceId | ‘$’ ‘{’ Block ‘}’) unless inside quoted pattern
SimpleExpr ::= spliceId | ‘$’ ‘{’ Pattern ‘}’) when inside quoted pattern SimpleType ::= spliceId | ‘$’ ‘{’ Pattern ‘}’) when inside quoted pattern
- Inherited from:
- Parser
The region to eliminate when replacing an opening (
or {
that ends a line.
The (
or {
is at in.offset.
The region to eliminate when replacing an opening (
or {
that ends a line.
The (
or {
is at in.offset.
- Inherited from:
- Parser
Parse statement separators and end markers. Ensure that there is at least one statement separator unless the next token terminates a statement´sequence.
Parse statement separators and end markers. Ensure that there is at least one statement separator unless the next token terminates a statement´sequence.
- Value parameters:
- altEnd
a token that is also considered as a terminator of the statement sequence (the default
EOF
already assumes to terminate a statement sequence).- noPrevStat
true if there was no immediately preceding statement parsed
- stats
the statements parsed to far
- what
a string indicating what kind of statement is parsed
- Returns:
true if the statement sequence continues, false if it terminates.
- Inherited from:
- Parser
Parse body
while checking (under -no-indent) that a {
is not missing before it.
This is done as follows:
If the next token S is indented relative to the current region,
and the end of body
is followed by a new line and another statement,
check that that other statement is indented less than S
Parse body
while checking (under -no-indent) that a {
is not missing before it.
This is done as follows:
If the next token S is indented relative to the current region,
and the end of body
is followed by a new line and another statement,
check that that other statement is indented less than S
- Inherited from:
- Parser
Unconditionally issue an error at given span, without updating lastErrorOffset.
Unconditionally issue an error at given span, without updating lastErrorOffset.
- Inherited from:
- ParserCommon
Issue an error at given offset if beyond last error offset and update lastErrorOffset.
Issue an error at given offset if beyond last error offset and update lastErrorOffset.
- Inherited from:
- ParserCommon
If at end of file, issue an incompleteInputError. Otherwise issue a syntax error and skip to next safe point.
If at end of file, issue an incompleteInputError. Otherwise issue a syntax error and skip to next safe point.
- Inherited from:
- Parser
Template ::= InheritClauses [TemplateBody] InheritClauses ::= [‘extends’ ConstrApps] [‘derives’ QualId {‘,’ QualId}]
Template ::= InheritClauses [TemplateBody] InheritClauses ::= [‘extends’ ConstrApps] [‘derives’ QualId {‘,’ QualId}]
- Inherited from:
- Parser
TemplateBody ::= [nl] {' TemplateStatSeq
}'
EnumBody ::= [nl] ‘{’ [SelfType] EnumStat {semi EnumStat} ‘}’
TemplateBody ::= [nl] {' TemplateStatSeq
}'
EnumBody ::= [nl] ‘{’ [SelfType] EnumStat {semi EnumStat} ‘}’
- Inherited from:
- Parser
TemplateStatSeq ::= [id [:' Type]
=>'] TemplateStat {semi TemplateStat}
TemplateStat ::= Import
| Export
| Annotations Modifiers Def
| Annotations Modifiers Dcl
| Extension
| Expr1
|
EnumStat ::= TemplateStat
| Annotations Modifiers EnumCase
TemplateStatSeq ::= [id [:' Type]
=>'] TemplateStat {semi TemplateStat}
TemplateStat ::= Import
| Export
| Annotations Modifiers Def
| Annotations Modifiers Dcl
| Extension
| Expr1
|
EnumStat ::= TemplateStat
| Annotations Modifiers EnumCase
- Inherited from:
- Parser
Accept identifier and return Ident with its name as a term name.
Accept identifier and return Ident with its name as a term name.
- Inherited from:
- Parser
TmplDef ::= ([‘case’] ‘class’ | ‘trait’) ClassDef | [‘case’] ‘object’ ObjectDef | ‘enum’ EnumDef | ‘given’ GivenDef
TmplDef ::= ([‘case’] ‘class’ | ‘trait’) ClassDef | [‘case’] ‘object’ ObjectDef | ‘enum’ EnumDef | ‘given’ GivenDef
- Inherited from:
- Parser
Does the current conditional expression continue after the initially parsed (...) region?
Does the current conditional expression continue after the initially parsed (...) region?
- Inherited from:
- Parser
TopStatSeq ::= TopStat {semi TopStat} TopStat ::= Import | Export | Annotations Modifiers Def | Packaging | package object objectDef | Extension |
TopStatSeq ::= TopStat {semi TopStat} TopStat ::= Import | Export | Annotations Modifiers Def | Packaging | package object objectDef | Extension |
- Inherited from:
- Parser
Type ::= FunType
| HkTypeParamClause ‘=>>’ Type
| FunParamClause ‘=>>’ Type
| MatchType
| InfixType
FunType ::= (MonoFunType | PolyFunType)
MonoFunType ::= FunTypeArgs (‘=>’ | ‘?=>’) Type
PolyFunType ::= HKTypeParamClause '=>' Type
FunTypeArgs ::= InfixType
| (' [ [ ‘[using]’ ‘['erased'] FunArgType {
,' FunArgType } ] `)'
| '(' [ ‘[using]’ ‘['erased'] TypedFunParam {',' TypedFunParam } ')'
Type ::= FunType
| HkTypeParamClause ‘=>>’ Type
| FunParamClause ‘=>>’ Type
| MatchType
| InfixType
FunType ::= (MonoFunType | PolyFunType)
MonoFunType ::= FunTypeArgs (‘=>’ | ‘?=>’) Type
PolyFunType ::= HKTypeParamClause '=>' Type
FunTypeArgs ::= InfixType
| (' [ [ ‘[using]’ ‘['erased'] FunArgType {
,' FunArgType } ] `)'
| '(' [ ‘[using]’ ‘['erased'] TypedFunParam {',' TypedFunParam } ')'
- Inherited from:
- Parser
TypeArgs ::= [' Type {
,' Type} ]' NamedTypeArgs ::=
[' NamedTypeArg {,' NamedTypeArg}
]'
TypeArgs ::= [' Type {
,' Type} ]' NamedTypeArgs ::=
[' NamedTypeArg {,' NamedTypeArg}
]'
- Inherited from:
- Parser
TypeCaseClause ::= ‘case’ (InfixType | ‘_’) ‘=>’ Type [semi]
TypeCaseClause ::= ‘case’ (InfixType | ‘_’) ‘=>’ Type [semi]
- Inherited from:
- Parser
TypeDcl ::= id [TypeParamClause] {FunParamClause} TypeBounds [‘=’ Type]
TypeDcl ::= id [TypeParamClause] {FunParamClause} TypeBounds [‘=’ Type]
- Inherited from:
- Parser
Accept identifier and return Ident with its name as a type name.
Accept identifier and return Ident with its name as a type name.
- Inherited from:
- Parser
TypeParamBounds ::= TypeBounds {<%' Type} {
:' Type}
TypeParamBounds ::= TypeBounds {<%' Type} {
:' Type}
- Inherited from:
- Parser
ClsTypeParamClause::= ‘[’ ClsTypeParam {‘,’ ClsTypeParam} ‘]’ ClsTypeParam ::= {Annotation} [‘+’ | ‘-’] id [HkTypeParamClause] TypeParamBounds
ClsTypeParamClause::= ‘[’ ClsTypeParam {‘,’ ClsTypeParam} ‘]’ ClsTypeParam ::= {Annotation} [‘+’ | ‘-’] id [HkTypeParamClause] TypeParamBounds
DefTypeParamClause::= ‘[’ DefTypeParam {‘,’ DefTypeParam} ‘]’ DefTypeParam ::= {Annotation} id [HkTypeParamClause] TypeParamBounds
TypTypeParamClause::= ‘[’ TypTypeParam {‘,’ TypTypeParam} ‘]’ TypTypeParam ::= {Annotation} id [HkTypePamClause] TypeBounds
HkTypeParamClause ::= ‘[’ HkTypeParam {‘,’ HkTypeParam} ‘]’ HkTypeParam ::= {Annotation} [‘+’ | ‘-’] (id [HkTypePamClause] | ‘_’) TypeBounds
- Inherited from:
- Parser
If all other characters on the same line as span
are blanks, widen to
the whole line.
If all other characters on the same line as span
are blanks, widen to
the whole line.
- Inherited from:
- Parser
{
withConstrApp} but no EOL allowed after
with`.
{
withConstrApp} but no EOL allowed after
with`.
- Inherited from:
- Parser
WithType ::= AnnotType {`with' AnnotType} (deprecated)
WithType ::= AnnotType {`with' AnnotType} (deprecated)
- Inherited from:
- Parser
Wrap annotation or constructor in New(...).
Wrap annotation or constructor in New(...).
- Inherited from:
- Parser
Inherited fields
ConstrApp ::= SimpleType1 {Annotation} {ParArgumentExprs}
ConstrApp ::= SimpleType1 {Annotation} {ParArgumentExprs}
- Inherited from:
- Parser
ConstrExpr ::= SelfInvocation
| {' SelfInvocation {semi BlockStat}
}'
ConstrExpr ::= SelfInvocation
| {' SelfInvocation {semi BlockStat}
}'
- Inherited from:
- Parser
Expr ::= [implicit'] FunParams (‘=>’ | ‘?=>’) Expr | HkTypeParamClause ‘=>’ Expr | Expr1 FunParams ::= Bindings | id |
'
ExprInParens ::= PostfixExpr :' Type | Expr BlockResult ::= [‘implicit’] FunParams (‘=>’ | ‘?=>’) Block | HkTypeParamClause ‘=>’ Block | Expr1 Expr1 ::= [‘inline’]
if' (' Expr
)' {nl} Expr [[semi] else Expr]
| [‘inline’] if' Expr
then' Expr [[semi] else Expr]
| while'
(' Expr )' {nl} Expr |
while' Expr do' Expr |
try' Expr Catches [finally' Expr] |
try' Expr [finally' Expr] |
throw' Expr
| return' [Expr] | ForExpr | [SimpleExpr
.'] id =' Expr | PrefixOperator SimpleExpr
=' Expr
| SimpleExpr1 ArgumentExprs =' Expr | PostfixExpr [Ascription] | ‘inline’ InfixExpr MatchClause Bindings ::=
(' [Binding {,' Binding}]
)'
Binding ::= (id | _') [
:' Type]
Ascription ::= :' InfixType |
:' Annotation {Annotation}
| :'
' `*'
Catches ::= ‘catch’ (Expr | ExprCaseClause)
Expr ::= [implicit'] FunParams (‘=>’ | ‘?=>’) Expr | HkTypeParamClause ‘=>’ Expr | Expr1 FunParams ::= Bindings | id |
'
ExprInParens ::= PostfixExpr :' Type | Expr BlockResult ::= [‘implicit’] FunParams (‘=>’ | ‘?=>’) Block | HkTypeParamClause ‘=>’ Block | Expr1 Expr1 ::= [‘inline’]
if' (' Expr
)' {nl} Expr [[semi] else Expr]
| [‘inline’] if' Expr
then' Expr [[semi] else Expr]
| while'
(' Expr )' {nl} Expr |
while' Expr do' Expr |
try' Expr Catches [finally' Expr] |
try' Expr [finally' Expr] |
throw' Expr
| return' [Expr] | ForExpr | [SimpleExpr
.'] id =' Expr | PrefixOperator SimpleExpr
=' Expr
| SimpleExpr1 ArgumentExprs =' Expr | PostfixExpr [Ascription] | ‘inline’ InfixExpr MatchClause Bindings ::=
(' [Binding {,' Binding}]
)'
Binding ::= (id | _') [
:' Type]
Ascription ::= :' InfixType |
:' Annotation {Annotation}
| :'
' `*'
Catches ::= ‘catch’ (Expr | ExprCaseClause)
- Inherited from:
- Parser
The offset where the last syntax error was reported, or if a skip to a safepoint occurred afterwards, the offset of the safe point.
The offset where the last syntax error was reported, or if a skip to a safepoint occurred afterwards, the offset of the safe point.
- Inherited from:
- ParserCommon
The implicit parameters introduced by _
in the current expression.
Parameters appear in reverse order.
The implicit parameters introduced by _
in the current expression.
Parameters appear in reverse order.
- Inherited from:
- Parser
The last offset where a colon at the end of line would be required if a subsequent { ... } block would be converted to an indentation region.
The last offset where a colon at the end of line would be required if a subsequent { ... } block would be converted to an indentation region.
- Inherited from:
- Parser
PrefixExpr ::= [PrefixOperator'] SimpleExpr PrefixOperator ::= ‘-’ | ‘+’ | ‘~’ | ‘!’
PrefixExpr ::= [PrefixOperator'] SimpleExpr PrefixOperator ::= ‘-’ | ‘+’ | ‘~’ | ‘!’
- Inherited from:
- Parser
RefinedType ::= WithType {[nl] Refinement}
RefinedType ::= WithType {[nl] Refinement}
- Inherited from:
- Parser
The markup parser. The first time this lazy val is accessed, we assume we were trying to parse an XML literal. The current position is recorded for later error reporting if it turns out that we don't have scala-xml on the compilation classpath.
The markup parser. The first time this lazy val is accessed, we assume we were trying to parse an XML literal. The current position is recorded for later error reporting if it turns out that we don't have scala-xml on the compilation classpath.
- Inherited from:
- Parser