Identifier = token_node_d[(alpha_p >> *alnum_p)];
Message = '"' >> token_node_d[*(anychar_p - '"')] >> '"';
Program = *Expression;
Expression = discard_node_d[space_p] | IfExpression
| WhileExpression
| VarExpression
| CallExpression
| NumericExpression
| AssignExpression;
AssignExpression = str_p("set")
>> token_node_d[+space_p]
>> LValue
>> discard_node_d[*space_p]
>> '='
>> discard_node_d[*space_p]
>> RValue;
RValue = NumericExpression
| Message
| Identifier;
LValue = Identifier;
ComparisonOperator = str_p("==") | str_p("!=") | str_p("<") | str_p(">");
BooleanExpression = (RValue
>> discard_node_d[*space_p]
>> ComparisonOperator
>> discard_node_d[*space_p]
>> RValue);
IfExpression = str_p("if")
>> discard_node_d[*space_p]
>> '('
>> discard_node_d[*space_p]
>> BooleanExpression
>> discard_node_d[*space_p]
>> ')'
>> discard_node_d[*space_p]
>> '{'
>> discard_node_d[*space_p]
>> Program
>> discard_node_d[*space_p]
>> '}'
>> !( discard_node_d[*space_p]
>> "else"
>> discard_node_d[*space_p]
>> '{'
>> discard_node_d[*space_p]
>> Program
>> discard_node_d[*space_p]
>> '}');
WhileExpression = str_p("while")
>> discard_node_d[*space_p]
>> '('
>> discard_node_d[*space_p]
>> BooleanExpression
>> discard_node_d[*space_p]
>> ')'
>> discard_node_d[*space_p]
>> '{'
>> discard_node_d[*space_p]
>> Program
>> discard_node_d[*space_p]
>> '}';
VarExpression = str_p("var")
>> token_node_d[+space_p]
>> Identifier
>> *( discard_node_d[*space_p]
>> discard_node_d[ch_p(',')]
>> discard_node_d[*space_p]
>> Identifier);
CallExpression = str_p("call")
>> token_node_d[+space_p]
>> Identifier
>> discard_node_d[*space_p]
>> '('
>> discard_node_d[*space_p]
>> !Arguments
>> discard_node_d[*space_p]
>> ')';
Arguments = RValue
>> *( discard_node_d[*space_p]
>> discard_node_d[ch_p(',')]
>> discard_node_d[*space_p]
>> RValue);
CallVal = str_p("var:") >> Identifier;
NumericExpression = Term
>> *( (ch_p('+') >> Term)
| ('-' >> Term));
Term = Factor
>> *( ('*' >> Factor)
| ('/' >> Factor));
Factor = int_p
|CallVal
| '(' >> NumericExpression >> ')'
| ('-' >> Factor)
| ('+' >> Factor);
댓글을 달아 주세요
우왕~ 멋지군하
천지 쵝오 ㅋㅋ
헠 =ㅁ= 횽님 ㅋㅋ
캄샤합니다..ㅋㅋ
하지만 횽님이 더 쵝오라는거 ㅋㅋ
관리자만 볼 수 있는 댓글입니다.
음 안녕하세요?
어떤 일이신지 댓글로 남겨주시면 감사하겠습니다^^.
와 멋지시네요! 잘보고갑니다~