Parser
Attributes
- Graph
-
- Supertypes
- Known subtypes
-
class OutlineParserclass ScriptParser
Members list
Type members
Classlikes
Attributes
- Supertypes
- Self type
-
symbXMLBuilder.type
Types
Value members
Concrete 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.
Attributes
- Returns
-
The offset at the start of the token to accept
semi = nl {nl} | ;' nl =
\n' // where allowed
semi = nl {nl} | ;' nl =
\n' // where allowed
Attributes
AccessQualifier ::= "[" (id | this) "]"
AccessQualifier ::= "[" (id | this) "]"
Attributes
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
Attributes
Adjust start of annotation or constructor to offset of preceding @ or new
Adjust start of annotation or constructor to offset of preceding @ or new
Attributes
Annotation ::= `@' SimpleType1 {ParArgumentExprs}
Annotation ::= `@' SimpleType1 {ParArgumentExprs}
Attributes
AnnotType ::= SimpleType {Annotation}
AnnotType ::= SimpleType {Annotation}
Attributes
ArgTypes ::= Type {,' Type} | NamedTypeArg {
,' NamedTypeArg} NamedTypeArg ::= id `=' Type
ArgTypes ::= Type {,' Type} | NamedTypeArg {
,' NamedTypeArg} NamedTypeArg ::= id `=' Type
Attributes
ArgumentExprs ::= ParArgumentExprs | [nl] BlockExpr
ArgumentExprs ::= ParArgumentExprs | [nl] BlockExpr
Attributes
ArgumentExprss ::= {ArgumentExprs}
ArgumentExprss ::= {ArgumentExprs}
Attributes
ArgumentPatterns ::= ‘(’ [Patterns] ‘)’ | ‘(’ [Patterns ‘,’] PatVar ‘*’ ‘)’
ArgumentPatterns ::= ‘(’ [Patterns] ‘)’ | ‘(’ [Patterns ‘,’] PatVar ‘*’ ‘)’
Attributes
Binding ::= [erased
] (id | _') [
:' Type]
Binding ::= [erased
] (id | _') [
:' Type]
Attributes
Block ::= BlockStatSeq
Block ::= BlockStatSeq
Attributes
- Note
-
Return tree does not have a defined span.
BlockExpr ::= <<< (CaseClauses | Block) >>>
BlockExpr ::= <<< (CaseClauses | Block) >>>
Attributes
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 |
Attributes
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). - not a code block being the input to a direct symbolic function call
inst method {\n expr \n}
cannot becomeinst method :\n expr
for a fully symbolic method
Attributes
CaptureRef ::= ident | this
CaptureRef ::= ident | this
Attributes
CaptureSet ::= {
CaptureRef {,
CaptureRef} }
-- under captureChecking
CaptureSet ::= {
CaptureRef {,
CaptureRef} }
-- under captureChecking
Attributes
CaseClause ::= ‘case’ Pattern [Guard] `=>' Block ExprCaseClause ::= ‘case’ Pattern [Guard] ‘=>’ Expr
CaseClause ::= ‘case’ Pattern [Guard] `=>' Block ExprCaseClause ::= ‘case’ Pattern [Guard] ‘=>’ Expr
Attributes
CaseClauses ::= CaseClause {CaseClause} TypeCaseClauses ::= TypeCaseClause {TypeCaseClause}
CaseClauses ::= CaseClause {CaseClause} TypeCaseClauses ::= TypeCaseClause {TypeCaseClause}
Attributes
[`extends' ConstrApps]
[`extends' ConstrApps]
Attributes
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.
Attributes
Checks that tuples don't contain a parameter.
Checks that tuples don't contain a parameter.
Attributes
ClassConstr ::= [ClsTypeParamClause] [ConstrMods] ClsTermParamClauses
ClassConstr ::= [ClsTypeParamClause] [ConstrMods] ClsTermParamClauses
Attributes
ClassDef ::= id ClassConstr TemplateOpt
ClassDef ::= id ClassConstr TemplateOpt
Attributes
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.
Attributes
Expr ::= [‘implicit’] FunParams =>' Expr BlockResult ::= implicit id [
:' InfixType] `=>' Block // Scala2 only
Expr ::= [‘implicit’] FunParams =>' Expr BlockResult ::= implicit id [
:' InfixType] `=>' Block // Scala2 only
Attributes
,
,
Attributes
{,
{,
currentRegion.commasExpected has to be set separately.
Attributes
CompilationUnit ::= {package QualId semi} TopStatSeq
CompilationUnit ::= {package QualId semi} TopStatSeq
Attributes
ConstrApps ::= ConstrApp ({‘,’ ConstrApp} | {‘with’ ConstrApp})
ConstrApps ::= ConstrApp ({‘,’ ConstrApp} | {‘with’ ConstrApp})
Attributes
ConstrMods ::= {Annotation} [AccessModifier]
ConstrMods ::= {Annotation} [AccessModifier]
Attributes
ContextTypes ::= FunArgType {‘,’ FunArgType}
ContextTypes ::= FunArgType {‘,’ FunArgType}
Attributes
Convert tree to formal parameter
Convert tree to formal parameter
Attributes
Convert tree to formal parameter list
Convert tree to formal parameter list
Attributes
Convert (qual)ident to type identifier
Convert (qual)ident to type identifier
Attributes
DefDef ::= DefSig [‘:’ Type] [‘=’ Expr] | this TypelessClauses [DefImplicitClause] `=' ConstrExpr DefSig ::= id [DefTypeParamClause] DefTermParamClauses
DefDef ::= DefSig [‘:’ Type] [‘=’ Expr] | this TypelessClauses [DefImplicitClause] `=' ConstrExpr DefSig ::= id [DefTypeParamClause] DefTermParamClauses
if clauseInterleaving is enabled: DefSig ::= id [DefParamClauses] [DefImplicitClause]
Attributes
Def ::= val PatDef | var VarDef | def DefDef | type {nl} TypeDef | TmplDef EnumCase ::= case' (id ClassConstr [
extends' ConstrApps]] | ids)
Def ::= val PatDef | var VarDef | def DefDef | type {nl} TypeDef | TmplDef EnumCase ::= case' (id ClassConstr [
extends' ConstrApps]] | ids)
Attributes
DotSelectors ::= { `.' id }
DotSelectors ::= { `.' id }
Attributes
Drop (...) or { ... }, replacing the closing element with endStr
Drop (...) or { ... }, replacing the closing element with endStr
Attributes
Drop current token, if it is a then
or do
.
Drop current token, if it is a then
or do
.
Attributes
Same as enclosed, but if closing token is missing, add ,
to the expected tokens in the error message provided the next token could have followed a ,
.
Same as enclosed, but if closing token is missing, add ,
to the expected tokens in the error message provided the next token could have followed a ,
.
Attributes
EnumCase = case' (id ClassConstr [
extends' ConstrApps] | ids)
EnumCase = case' (id ClassConstr [
extends' ConstrApps] | ids)
Attributes
EnumDef ::= id ClassConstr InheritClauses EnumBody
EnumDef ::= id ClassConstr InheritClauses EnumBody
Attributes
Enumerator ::= Generator | Guard {Guard} | Pattern1 `=' Expr
Enumerator ::= Generator | Guard {Guard} | Pattern1 `=' Expr
Attributes
Enumerators ::= Generator {semi Enumerator | Guard}
Enumerators ::= Generator {semi Enumerator | Guard}
Attributes
ExprsInParens ::= ExprInParens {,' ExprInParens} Bindings ::= Binding {
,' Binding}
ExprsInParens ::= ExprInParens {,' ExprInParens} Bindings ::= Binding {
,' Binding}
Attributes
ExtMethod ::= {Annotation [nl]} {Modifier} ‘def’ DefDef | Export
ExtMethod ::= {Annotation [nl]} {Modifier} ‘def’ DefDef | Export
Attributes
ExtMethods ::= ExtMethod | [nl] ‘{’ ExtMethod {semi ExtMethod ‘}’
ExtMethods ::= ExtMethod | [nl] ‘{’ ExtMethod {semi ExtMethod ‘}’
Attributes
Extension ::= ‘extension’ [DefTypeParamClause] {UsingParamClause} ‘(’ DefTermParam ‘)’ {UsingParamClause} ExtMethods
Extension ::= ‘extension’ [DefTypeParamClause] {UsingParamClause} ‘(’ DefTermParam ‘)’ {UsingParamClause} ExtMethods
Attributes
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.
Attributes
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?
Attributes
Is the following sequence the generators of a for-expression enclosed in (...)?
Is the following sequence the generators of a for-expression enclosed in (...)?
Attributes
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 :
?
Attributes
Is the token sequence following the current :
token classified as a lambda? This is the case if the input starts with an identifier, a wildcard, or something enclosed in (...) or [...], and this is followed by a =>
or ?=>
and an INDENT.
Is the token sequence following the current :
token classified as a lambda? This is the case if the input starts with an identifier, a wildcard, or something enclosed in (...) or [...], and this is followed by a =>
or ?=>
and an INDENT.
Attributes
When encountering a :
, is that in the binding of a lambda?
When encountering a :
, is that in the binding of a lambda?
Attributes
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.
Attributes
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
Attributes
FunParamClause ::= ‘(’ TypedFunParam {‘,’ TypedFunParam } ‘)’
FunParamClause ::= ‘(’ TypedFunParam {‘,’ TypedFunParam } ‘)’
Attributes
FunParams ::= Bindings | id | _' Bindings ::=
(' [Binding {,' Binding}]
)'
FunParams ::= Bindings | id | _' Bindings ::=
(' [Binding {,' Binding}]
)'
Attributes
Generator ::= [‘case’] Pattern `<-' Expr
Generator ::= [‘case’] Pattern `<-' Expr
Attributes
GivenDef ::= [GivenSig] (AnnotType [‘=’ Expr] | StructuralInstance) GivenSig ::= [id] [DefTypeParamClause] {UsingParamClauses} ‘:’
GivenDef ::= [GivenSig] (AnnotType [‘=’ Expr] | StructuralInstance) GivenSig ::= [id] [DefTypeParamClause] {UsingParamClauses} ‘:’
Attributes
Accept identifier and return its name as a term name.
Accept identifier and return its name as a term name.
Attributes
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]
Attributes
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]
Attributes
Import ::= import' ImportExpr {‘,’ ImportExpr} Export ::=
export' ImportExpr {‘,’ ImportExpr}
Import ::= import' ImportExpr {‘,’ ImportExpr} Export ::=
export' ImportExpr {‘,’ ImportExpr}
Attributes
Issue an error at current offset that input is incomplete
Issue an error at current offset that input is incomplete
Attributes
Parse indentation region body
and rewrite it to be in braces instead
Parse indentation region body
and rewrite it to be in braces instead
Attributes
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.
Attributes
InfixPattern ::= SimplePattern {id [nl] SimplePattern}
InfixPattern ::= SimplePattern {id [nl] SimplePattern}
Attributes
InfixType ::= RefinedType {id [nl] RefinedType} | RefinedType ^
InfixType ::= RefinedType {id [nl] RefinedType} | RefinedType ^
Attributes
True if we are seeing a lambda argument after a colon of the form: : (params) => body
True if we are seeing a lambda argument after a colon of the form: : (params) => body
Attributes
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.
Attributes
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)?
Attributes
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 '{...'
Attributes
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.
Attributes
Create a tree representing a packaging
Create a tree representing a packaging
Attributes
MatchClause ::= match'
{' CaseClauses `}'
MatchClause ::= match'
{' CaseClauses `}'
Attributes
`match' <<< TypeCaseClauses >>>
`match' <<< TypeCaseClauses >>>
Attributes
MixinQualifier ::= [' id
]'
MixinQualifier ::= [' id
]'
Attributes
Create an import node and handle source version imports
Create an import node and handle source version imports
Attributes
{Annotation} {Modifier} Modifiers ::= {Modifier} LocalModifiers ::= {LocalModifier} AccessModifier ::= (private | protected) [AccessQualifier] Modifier ::= LocalModifier | AccessModifier | override | opaque LocalModifier ::= abstract | final | sealed | open | implicit | lazy | inline | transparent | infix | erased
{Annotation} {Modifier} Modifiers ::= {Modifier} LocalModifiers ::= {LocalModifier} AccessModifier ::= (private | protected) [AccessQualifier] Modifier ::= LocalModifier | AccessModifier | override | opaque LocalModifier ::= abstract | final | sealed | open | implicit | lazy | inline | transparent | infix | erased
Attributes
SimpleExpr ::= ‘new’ ConstrApp {with
ConstrApp} [TemplateBody] | ‘new’ TemplateBody
SimpleExpr ::= ‘new’ ConstrApp {with
ConstrApp} [TemplateBody] | ‘new’ TemplateBody
Attributes
Can the next lookahead token start an operand as defined by leadingOperandTokens, or is postfix ops enabled? This is used to decide whether the current token can be an infix operator.
Can the next lookahead token start an operand as defined by leadingOperandTokens, or is postfix ops enabled? This is used to decide whether the current token can be an infix operator.
Attributes
ObjectDef ::= id TemplateOpt
ObjectDef ::= id TemplateOpt
Attributes
Packaging ::= package QualId [nl] {' TopStatSeq
}'
Packaging ::= package QualId [nl] {' TopStatSeq
}'
Attributes
ParArgumentExprs ::= (' [‘using’] [ExprsInParens]
)' | (' [ExprsInParens
,'] PostfixExpr `*' ')'
ParArgumentExprs ::= (' [‘using’] [ExprsInParens]
)' | (' [ExprsInParens
,'] PostfixExpr `*' ')'
Attributes
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.
Attributes
ParamType ::= ParamValueType | =>' ParamValueType |
->' [CaptureSet] ParamValueType
ParamType ::= ParamValueType | =>' ParamValueType |
->' [CaptureSet] ParamValueType
Attributes
ParamValueType ::= Type [`*']
ParamValueType ::= Type [`*']
Attributes
This is the general parse entry point. Overridden by ScriptParser
This is the general parse entry point. Overridden by ScriptParser
Attributes
PatDef ::= ids [‘:’ Type] [‘=’ Expr] | Pattern2 [‘:’ Type] [‘=’ Expr] VarDef ::= PatDef | id {,' id}
:' Type ='
_' (deprecated in 3.x)
PatDef ::= ids [‘:’ Type] [‘=’ Expr] | Pattern2 [‘:’ Type] [‘=’ Expr] VarDef ::= PatDef | id {,' id}
:' Type ='
_' (deprecated in 3.x)
Attributes
Pattern ::= Pattern1 { `|' Pattern1 }
Pattern ::= Pattern1 { `|' Pattern1 }
Attributes
Pattern1 ::= PatVar Ascription | [‘-’] integerLiteral Ascription | [‘-’] floatingPointLiteral Ascription | Pattern2
Pattern1 ::= PatVar Ascription | [‘-’] integerLiteral Ascription | [‘-’] floatingPointLiteral Ascription | Pattern2
Attributes
Pattern3 ::= InfixPattern | PatVar ‘*’
Pattern3 ::= InfixPattern | PatVar ‘*’
Attributes
Patterns ::= Pattern [`,' Pattern]
Patterns ::= Pattern [`,' Pattern]
Attributes
PostfixExpr ::= InfixExpr [id [nl]] InfixExpr ::= PrefixExpr | InfixExpr id [nl] InfixExpr | InfixExpr id ColonArgument | InfixExpr MatchClause
PostfixExpr ::= InfixExpr [id [nl]] InfixExpr ::= PrefixExpr | InfixExpr id [nl] InfixExpr | InfixExpr id ColonArgument | InfixExpr MatchClause
Attributes
RefineStatSeq ::= RefineStat {semi RefineStat} RefineStat ::= ‘val’ VarDef | ‘def’ DefDef | ‘type’ {nl} TypeDef (in reality we admit class defs and vars and filter them out afterwards in checkLegal
)
RefineStatSeq ::= RefineStat {semi RefineStat} RefineStat ::= ‘val’ VarDef | ‘def’ DefDef | ‘type’ {nl} TypeDef (in reality we admit class defs and vars and filter them out afterwards in checkLegal
)
Attributes
Refinement ::= {' RefineStatSeq
}'
Refinement ::= {' RefineStatSeq
}'
Attributes
rewrite code with (...) around the source code of t
rewrite code with (...) around the source code of t
Attributes
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
Attributes
SelfInvocation ::= this ArgumentExprs {ArgumentExprs}
SelfInvocation ::= this ArgumentExprs {ArgumentExprs}
Attributes
SelfType ::= id [‘:’ InfixType] ‘=>’ | ‘this’ ‘:’ InfixType ‘=>’
SelfType ::= id [‘:’ InfixType] ‘=>’ | ‘this’ ‘:’ InfixType ‘=>’
Attributes
SimpleExpr ::= ‘new’ ConstrApp {with
ConstrApp} [TemplateBody] | ‘new’ TemplateBody | BlockExpr | ExprSplice | Quoted | quoteId | SimpleExpr1 [_
] SimpleExpr1 ::= literal | xmlLiteral | SimpleRef | (
[ExprsInParens] )
| SimpleExpr .
id | SimpleExpr .
MatchClause | SimpleExpr (TypeArgs | NamedTypeArgs) | SimpleExpr1 ArgumentExprs | SimpleExpr1 ColonArgument ColonArgument ::= colon [LambdaStart] indent (CaseClauses | Block) outdent LambdaStart ::= FunParams (‘=>’ | ‘?=>’) | HkTypeParamClause ‘=>’ ColonArgBody ::= indent (CaseClauses | Block) outdent Quoted ::= ‘'’ ‘{’ Block ‘}’ | ‘'’ ‘[’ Type ‘]’
SimpleExpr ::= ‘new’ ConstrApp {with
ConstrApp} [TemplateBody] | ‘new’ TemplateBody | BlockExpr | ExprSplice | Quoted | quoteId | SimpleExpr1 [_
] SimpleExpr1 ::= literal | xmlLiteral | SimpleRef | (
[ExprsInParens] )
| SimpleExpr .
id | SimpleExpr .
MatchClause | SimpleExpr (TypeArgs | NamedTypeArgs) | SimpleExpr1 ArgumentExprs | SimpleExpr1 ColonArgument ColonArgument ::= colon [LambdaStart] indent (CaseClauses | Block) outdent LambdaStart ::= FunParams (‘=>’ | ‘?=>’) | HkTypeParamClause ‘=>’ ColonArgBody ::= indent (CaseClauses | Block) outdent Quoted ::= ‘'’ ‘{’ Block ‘}’ | ‘'’ ‘[’ Type ‘]’
Attributes
SimpleLiteral ::= [‘-’] integerLiteral | [‘-’] floatingPointLiteral | booleanLiteral | characterLiteral | stringLiteral
SimpleLiteral ::= [‘-’] integerLiteral | [‘-’] floatingPointLiteral | booleanLiteral | characterLiteral | stringLiteral
Attributes
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 |
_'
Attributes
SimpleRef ::= id | [id ‘.’] ‘this’ | [id ‘.’] ‘super’ [ClassQualifier] ‘.’ id
SimpleRef ::= id | [id ‘.’] ‘this’ | [id ‘.’] ‘super’ [ClassQualifier] ‘.’ id
Attributes
SimpleType ::= SimpleLiteral | ‘?’ SubtypeBounds | SimpleType1 | SimpleType ‘(’ Singletons ‘)’ -- under language.experimental.dependent, checked in Typer Singletons ::= Singleton {‘,’ Singleton}
SimpleType ::= SimpleLiteral | ‘?’ SubtypeBounds | SimpleType1 | SimpleType ‘(’ Singletons ‘)’ -- under language.experimental.dependent, checked in Typer Singletons ::= Singleton {‘,’ Singleton}
Attributes
SimpleType1 ::= id | Singleton .' id | Singleton
.' type | ‘(’ ArgTypes ‘)’ | Refinement | TypeSplice -- deprecated syntax (since 3.0.0) | SimpleType1 TypeArgs | SimpleType1 `#' id
SimpleType1 ::= id | Singleton .' id | Singleton
.' type | ‘(’ ArgTypes ‘)’ | Refinement | TypeSplice -- deprecated syntax (since 3.0.0) | SimpleType1 TypeArgs | SimpleType1 `#' id
Attributes
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 ‘]’
Attributes
ExprSplice ::= ‘$’ spliceId -- if inside quoted block | ‘$’ ‘{’ Block ‘}’ -- unless inside quoted pattern | ‘$’ ‘{’ Pattern ‘}’ -- when inside quoted pattern TypeSplice ::= ‘$’ spliceId -- if inside quoted type | ‘$’ ‘{’ Block ‘}’ -- unless inside quoted type pattern | ‘$’ ‘{’ Pattern ‘}’ -- when inside quoted type pattern
ExprSplice ::= ‘$’ spliceId -- if inside quoted block | ‘$’ ‘{’ Block ‘}’ -- unless inside quoted pattern | ‘$’ ‘{’ Pattern ‘}’ -- when inside quoted pattern TypeSplice ::= ‘$’ spliceId -- if inside quoted type | ‘$’ ‘{’ Block ‘}’ -- unless inside quoted type pattern | ‘$’ ‘{’ Pattern ‘}’ -- when inside quoted type pattern
Attributes
The block in a quote or splice
The block in a quote or splice
Attributes
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.
Attributes
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
Attributes
- Returns
-
true if the statement sequence continues, false if it terminates.
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
Attributes
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.
Attributes
Template ::= InheritClauses [TemplateBody] InheritClauses ::= [‘extends’ ConstrApps] [‘derives’ QualId {‘,’ QualId}]
Template ::= InheritClauses [TemplateBody] InheritClauses ::= [‘extends’ ConstrApps] [‘derives’ QualId {‘,’ QualId}]
Attributes
TemplateBody ::= [nl] {' TemplateStatSeq
}' EnumBody ::= [nl] ‘{’ [SelfType] EnumStat {semi EnumStat} ‘}’
TemplateBody ::= [nl] {' TemplateStatSeq
}' EnumBody ::= [nl] ‘{’ [SelfType] EnumStat {semi EnumStat} ‘}’
Attributes
TemplateOpt = [Template]
TemplateOpt = [Template]
Attributes
TemplateStatSeq ::= [SelfType] TemplateStat {semi TemplateStat} TemplateStat ::= Import | Export | Annotations Modifiers Def | Extension | Expr1 | EnumStat ::= TemplateStat | Annotations Modifiers EnumCase
TemplateStatSeq ::= [SelfType] TemplateStat {semi TemplateStat} TemplateStat ::= Import | Export | Annotations Modifiers Def | Extension | Expr1 | EnumStat ::= TemplateStat | Annotations Modifiers EnumCase
Attributes
Accept identifier and return Ident with its name as a term name.
Accept identifier and return Ident with its name as a term name.
Attributes
ClsTermParamClause ::= ‘(’ ClsParams ‘)’ | UsingClsTermParamClause UsingClsTermParamClause::= ‘(’ ‘using’ [‘erased’] (ClsParams | ContextTypes) ‘)’ ClsParams ::= ClsParam {‘,’ ClsParam} ClsParam ::= {Annotation} [{Modifier} (‘val’ | ‘var’)] Param
ClsTermParamClause ::= ‘(’ ClsParams ‘)’ | UsingClsTermParamClause UsingClsTermParamClause::= ‘(’ ‘using’ [‘erased’] (ClsParams | ContextTypes) ‘)’ ClsParams ::= ClsParam {‘,’ ClsParam} ClsParam ::= {Annotation} [{Modifier} (‘val’ | ‘var’)] Param
TypelessClause ::= DefTermParamClause | UsingParamClause
DefTermParamClause::= [nl] ‘(’ [DefTermParams] ‘)’ UsingParamClause ::= ‘(’ ‘using’ (DefTermParams | ContextTypes) ‘)’ DefImplicitClause ::= [nl] ‘(’ ‘implicit’ DefTermParams ‘)’ DefTermParams ::= DefTermParam {‘,’ DefTermParam} DefTermParam ::= {Annotation} [‘erased’] [‘inline’] Param
Param ::= id :' ParamType [
=' Expr]
Attributes
- Returns
-
the list of parameter definitions
ClsTermParamClauses ::= {ClsTermParamClause} [[nl] ‘(’ [‘implicit’] ClsParams ‘)’] TypelessClauses ::= TypelessClause {TypelessClause}
ClsTermParamClauses ::= {ClsTermParamClause} [[nl] ‘(’ [‘implicit’] ClsParams ‘)’] TypelessClauses ::= TypelessClause {TypelessClause}
Attributes
- Returns
-
The parameter definitions
TmplDef ::= ([‘case’] ‘class’ | ‘trait’) ClassDef | [‘case’] ‘object’ ObjectDef | ‘enum’ EnumDef | ‘given’ GivenDef
TmplDef ::= ([‘case’] ‘class’ | ‘trait’) ClassDef | [‘case’] ‘object’ ObjectDef | ‘enum’ EnumDef | ‘given’ GivenDef
Attributes
Does the current conditional expression continue after the initially parsed (...) region?
Does the current conditional expression continue after the initially parsed (...) region?
Attributes
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 |
Attributes
Type ::= FunType | HkTypeParamClause ‘=>>’ Type | FunParamClause ‘=>>’ Type | MatchType | InfixType FunType ::= (MonoFunType | PolyFunType) MonoFunType ::= FunTypeArgs (‘=>’ | ‘?=>’) Type | (‘->’ | ‘?->’ ) [CaptureSet] Type -- under pureFunctions PolyFunType ::= HKTypeParamClause '=>' Type | HKTypeParamClause ‘->’ [CaptureSet] Type -- under pureFunctions FunTypeArgs ::= InfixType | (' [ FunArgType {
,' FunArgType } ] )' | '(' [ TypedFunParam {',' TypedFunParam } ')' MatchType ::= InfixType
match` <<< TypeCaseClauses >>>
Type ::= FunType | HkTypeParamClause ‘=>>’ Type | FunParamClause ‘=>>’ Type | MatchType | InfixType FunType ::= (MonoFunType | PolyFunType) MonoFunType ::= FunTypeArgs (‘=>’ | ‘?=>’) Type | (‘->’ | ‘?->’ ) [CaptureSet] Type -- under pureFunctions PolyFunType ::= HKTypeParamClause '=>' Type | HKTypeParamClause ‘->’ [CaptureSet] Type -- under pureFunctions FunTypeArgs ::= InfixType | (' [ FunArgType {
,' FunArgType } ] )' | '(' [ TypedFunParam {',' TypedFunParam } ')' MatchType ::= InfixType
match` <<< TypeCaseClauses >>>
Attributes
TypeArgs ::= [' Type {
,' Type} ]' NamedTypeArgs ::=
[' NamedTypeArg {,' NamedTypeArg}
]'
TypeArgs ::= [' Type {
,' Type} ]' NamedTypeArgs ::=
[' NamedTypeArg {,' NamedTypeArg}
]'
Attributes
TypeBounds ::= [>:' Type] [
<:' Type]
TypeBounds ::= [>:' Type] [
<:' Type]
Attributes
TypeCaseClause ::= ‘case’ (InfixType | ‘_’) ‘=>’ Type [semi]
TypeCaseClause ::= ‘case’ (InfixType | ‘_’) ‘=>’ Type [semi]
Attributes
TypeDef ::= id [TypeParamClause] {FunParamClause} TypeBounds [‘=’ Type]
TypeDef ::= id [TypeParamClause] {FunParamClause} TypeBounds [‘=’ Type]
Attributes
Accept identifier and return Ident with its name as a type name.
Accept identifier and return Ident with its name as a type name.
Attributes
DefParamClauses ::= DefParamClause { DefParamClause } -- and two DefTypeParamClause cannot be adjacent DefParamClause ::= DefTypeParamClause | DefTermParamClause | UsingParamClause
DefParamClauses ::= DefParamClause { DefParamClause } -- and two DefTypeParamClause cannot be adjacent DefParamClause ::= DefTypeParamClause | DefTermParamClause | UsingParamClause
Attributes
TypeParamBounds ::= TypeBounds {<%' Type} {
:' Type}
TypeParamBounds ::= TypeBounds {<%' Type} {
:' Type}
Attributes
ClsTypeParamClause::= ‘[’ ClsTypeParam {‘,’ ClsTypeParam} ‘]’ ClsTypeParam ::= {Annotation} [‘+’ | ‘-’] id [HkTypeParamClause] TypeParamBounds
ClsTypeParamClause::= ‘[’ ClsTypeParam {‘,’ ClsTypeParam} ‘]’ ClsTypeParam ::= {Annotation} [‘+’ | ‘-’] id [HkTypeParamClause] TypeParamBounds
DefTypeParamClause::= ‘[’ DefTypeParam {‘,’ DefTypeParam} ‘]’ DefTypeParam ::= {Annotation} [sealed
] -- under captureChecking id [HkTypeParamClause] TypeParamBounds
TypTypeParamClause::= ‘[’ TypTypeParam {‘,’ TypTypeParam} ‘]’ TypTypeParam ::= {Annotation} id [HkTypePamClause] TypeBounds
HkTypeParamClause ::= ‘[’ HkTypeParam {‘,’ HkTypeParam} ‘]’ HkTypeParam ::= {Annotation} [‘+’ | ‘-’] (id [HkTypePamClause] | ‘_’) TypeBounds
Attributes
TypedFunParam ::= [erased
] id ':' Type
TypedFunParam ::= [erased
] id ':' Type
Attributes
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.
Attributes
{
withConstrApp} but no EOL allowed after
with`.
{
withConstrApp} but no EOL allowed after
with`.
Attributes
with Template, with EOL
with Template, with EOL
Attributes
WithType ::= AnnotType {`with' AnnotType} (deprecated)
WithType ::= AnnotType {`with' AnnotType} (deprecated)
Attributes
Wrap annotation or constructor in New(...).
Wrap annotation or constructor in New(...).
Attributes
Inherited methods
Attributes
- Inherited from:
- ParserCommon
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.
Attributes
- Inherited from:
- ParserCommon
Attributes
- 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.
Attributes
- Inherited from:
- ParserCommon
Attributes
- Inherited from:
- ParserCommon
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.
Attributes
- Inherited from:
- ParserCommon
Attributes
- Inherited from:
- ParserCommon
Attributes
- Inherited from:
- ParserCommon
Attributes
- Inherited from:
- ParserCommon
Unconditionally issue an error at given span, without updating lastErrorOffset.
Unconditionally issue an error at given span, without updating lastErrorOffset.
Attributes
- 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.
Attributes
- Inherited from:
- ParserCommon
Attributes
- Inherited from:
- ParserCommon
Concrete fields
ConstrApp ::= SimpleType1 {Annotation} {ParArgumentExprs}
ConstrApp ::= SimpleType1 {Annotation} {ParArgumentExprs}
Attributes
ConstrExpr ::= SelfInvocation | {' SelfInvocation {semi BlockStat}
}'
ConstrExpr ::= SelfInvocation | {' SelfInvocation {semi BlockStat}
}'
Attributes
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)
Attributes
FunArgType ::= Type | =>' Type |
->' [CaptureSet] Type
FunArgType ::= Type | =>' Type |
->' [CaptureSet] Type
Attributes
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.
Attributes
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.
Attributes
PrefixExpr ::= [PrefixOperator'] SimpleExpr PrefixOperator ::= ‘-’ | ‘+’ | ‘~’ | ‘!’ (if not backquoted)
PrefixExpr ::= [PrefixOperator'] SimpleExpr PrefixOperator ::= ‘-’ | ‘+’ | ‘~’ | ‘!’ (if not backquoted)
Attributes
RefinedType ::= WithType {[nl] Refinement} [^
CaptureSet]
RefinedType ::= WithType {[nl] Refinement} [^
CaptureSet]
Attributes
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.
Attributes
Inherited fields
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.
Attributes
- Inherited from:
- ParserCommon