﻿using Nemerle;

syntax module N2ParserExtension1
{
  using Nitra.Core;
  using N2Parser;
  using ModifierParser;

  extend syntax NamespaceMember
  {
    | TypeAliasDeclaration = "type" sm Identifier sm "=" sm QualifiedIdentifier ";"nl;
  }

  extend syntax Modifier
  {
    | Test = "!test test!" sm;
  }

  extend syntax Expression
  {
    precedence TestPrecedence1:
    | TestOperator2 = Expression sm "@_@" sm Expression right-associative
    precedence TestPrecedence order Additive < TestPrecedence < Multiplicative:
    | TestOperator3 = Expression ^ TestPrecedence sm "%_%" sm Expression ^ TestPrecedence
    precedence 0:
    precedence TestPrecedence2:
    | TestOperator1 = Expression sm "^_^" sm Expression
  }
}
