TODO + cosmetics
This commit is contained in:
@@ -61,6 +61,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
RANGE(JetTokens.RANGE),
|
RANGE(JetTokens.RANGE),
|
||||||
SIMPLE_NAME(IDENTIFIER),
|
SIMPLE_NAME(IDENTIFIER),
|
||||||
ELVIS(JetTokens.ELVIS),
|
ELVIS(JetTokens.ELVIS),
|
||||||
|
// TODO : make same priority
|
||||||
WITH_TYPE_RHS(IS_KEYWORD, NOT_IS, AS_KEYWORD, COLON) {
|
WITH_TYPE_RHS(IS_KEYWORD, NOT_IS, AS_KEYWORD, COLON) {
|
||||||
@Override
|
@Override
|
||||||
public void parseRightHandSide(JetExpressionParsing parsing) {
|
public void parseRightHandSide(JetExpressionParsing parsing) {
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class JetParsing extends AbstractJetParsing {
|
|||||||
@Override
|
@Override
|
||||||
protected boolean parseCallWithClosure() {
|
protected boolean parseCallWithClosure() {
|
||||||
if (builderForByClause.getStackSize() > 0) {
|
if (builderForByClause.getStackSize() > 0) {
|
||||||
return super.parseCallWithClosure();
|
return super.parseCallWithClosure();
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -252,7 +252,7 @@ public class JetParsing extends AbstractJetParsing {
|
|||||||
extenstion = true;
|
extenstion = true;
|
||||||
if (TYPE_REF_FIRST.contains(tt())
|
if (TYPE_REF_FIRST.contains(tt())
|
||||||
&& !(at(IDENTIFIER) && lookahead(1) == LPAR)) {
|
&& !(at(IDENTIFIER) && lookahead(1) == LPAR)) {
|
||||||
// TODO: if this type is annotated with an attribute, and it is a single identifier, it is a error (decomposer [a] foo())
|
// TODO: if this type is annotated with an attribute, and it is a single identifier, it is an error (decomposer [a] foo())
|
||||||
parseTypeRef();
|
parseTypeRef();
|
||||||
// The decomposer name may appear as the last section of the type
|
// The decomposer name may appear as the last section of the type
|
||||||
if (at(DOT)) {
|
if (at(DOT)) {
|
||||||
@@ -1311,6 +1311,7 @@ public class JetParsing extends AbstractJetParsing {
|
|||||||
* ;
|
* ;
|
||||||
*/
|
*/
|
||||||
private void parseTupleType() {
|
private void parseTupleType() {
|
||||||
|
// TODO : prohibit (a)
|
||||||
assert _at(LPAR);
|
assert _at(LPAR);
|
||||||
|
|
||||||
PsiBuilder.Marker tuple = mark();
|
PsiBuilder.Marker tuple = mark();
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class JetExpression extends JetElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
JetExpression findExpressionUnder(JetNodeType type) {
|
protected JetExpression findExpressionUnder(JetNodeType type) {
|
||||||
PsiElement containerNode = findChildByType(type);
|
PsiElement containerNode = findChildByType(type);
|
||||||
if (containerNode == null) return null;
|
if (containerNode == null) return null;
|
||||||
|
|
||||||
|
|||||||
@@ -24,11 +24,13 @@ WHITE_SPACE_CHAR=[\ \n\t\f]
|
|||||||
// TODO: prohibit '$' in identifiers?
|
// TODO: prohibit '$' in identifiers?
|
||||||
PLAIN_IDENTIFIER=[:jletter:] [:jletterdigit:]*
|
PLAIN_IDENTIFIER=[:jletter:] [:jletterdigit:]*
|
||||||
// TODO: this one MUST allow everything accepted by the runtime
|
// TODO: this one MUST allow everything accepted by the runtime
|
||||||
|
// TODO: Replace backticks by one backslash in the begining
|
||||||
ESCAPED_IDENTIFIER = `{PLAIN_IDENTIFIER}`
|
ESCAPED_IDENTIFIER = `{PLAIN_IDENTIFIER}`
|
||||||
IDENTIFIER = {PLAIN_IDENTIFIER}|{ESCAPED_IDENTIFIER}
|
IDENTIFIER = {PLAIN_IDENTIFIER}|{ESCAPED_IDENTIFIER}
|
||||||
FIELD_IDENTIFIER = \${IDENTIFIER}
|
FIELD_IDENTIFIER = \${IDENTIFIER}
|
||||||
|
|
||||||
BLOCK_COMMENT=("/*"[^"*"]{COMMENT_TAIL})|"/*"
|
BLOCK_COMMENT=("/*"[^"*"]{COMMENT_TAIL})|"/*"
|
||||||
|
// TODO: Wiki markup for doc comments?
|
||||||
DOC_COMMENT="/*""*"+("/"|([^"/""*"]{COMMENT_TAIL}))?
|
DOC_COMMENT="/*""*"+("/"|([^"/""*"]{COMMENT_TAIL}))?
|
||||||
COMMENT_TAIL=([^"*"]*("*"+[^"*""/"])?)*("*"+"/")?
|
COMMENT_TAIL=([^"*"]*("*"+[^"*""/"])?)*("*"+"/")?
|
||||||
EOL_COMMENT="/""/"[^\n]*
|
EOL_COMMENT="/""/"[^\n]*
|
||||||
@@ -52,6 +54,7 @@ BINARY_EXPONENT=[Pp][+-]?{DIGIT}+
|
|||||||
HEX_SIGNIFICAND={HEX_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}.|0[Xx]{HEX_DIGIT}*.{HEX_DIGIT}+
|
HEX_SIGNIFICAND={HEX_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}.|0[Xx]{HEX_DIGIT}*.{HEX_DIGIT}+
|
||||||
|
|
||||||
CHARACTER_LITERAL="'"([^\\\'\n]|{ESCAPE_SEQUENCE})*("'"|\\)?
|
CHARACTER_LITERAL="'"([^\\\'\n]|{ESCAPE_SEQUENCE})*("'"|\\)?
|
||||||
|
// TODO: introduce symbols (e.g. 'foo) as another way to write string literals
|
||||||
STRING_LITERAL=\"([^\\\"\n]|{ESCAPE_SEQUENCE})*(\"|\\)?
|
STRING_LITERAL=\"([^\\\"\n]|{ESCAPE_SEQUENCE})*(\"|\\)?
|
||||||
ESCAPE_SEQUENCE=\\[^\n]
|
ESCAPE_SEQUENCE=\\[^\n]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user