Skip to content
This repository was archived by the owner on Nov 25, 2025. It is now read-only.
This repository was archived by the owner on Nov 25, 2025. It is now read-only.

UniUnaryOp: i++, ++i マネージメント #26

@khlee12

Description

@khlee12

++ii++の扱い方法として:

マッパーを生成する時に、ParseRule
preIncrementExpression
preDecrementExpression
unaryExpressionNotPlusMinus
であれば、operatorの前に"_"をつけて、
postIncrementExpression
postDecrementExpression
であれば、operatorの後ろに"_"をつける。

(そうすれば、Generatoroperatorを読む時に、"_"の位置によってプリントする順番を決められる)

タスクとして、"_"のつけるのをUniMapperGeneratorで自動的に生成できるようにしたい。

preIncrementExpression => UniUnaryOp
    :   INC$operator unaryExpression$expr
    ;

preDecrementExpression => UniUnaryOp
    :   DEC$operator unaryExpression$expr
    ;

unaryExpressionNotPlusMinus => UniUnaryOp
    :   postfixExpression$RETURN
    |   TILDE$operator unaryExpression$expr
    |   BANG$operator unaryExpression$expr
    |   castExpression
    ;

postfixExpression => UniUnaryOp
    :   (   primary$RETURN
        |   expressionName$RETURN
        )
        (   postIncrementExpression_lf_postfixExpression
        |   postDecrementExpression_lf_postfixExpression
        )*
    ;

postIncrementExpression => UniUnaryOp
    :   postfixExpression$expr INC$operator
    ;

postDecrementExpression=>UniUnaryOp
    :   postfixExpression$expr DEC$operator
    ;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions