fromString static method

MacroExpansion fromString(
  1. String expansion,
  2. MacroContext context
)

Implementation

static MacroExpansion fromString(String expansion, MacroContext context) {
  var numArgs = 0;
  if (expansion.contains('#')) {
    final stripped = expansion.replaceAll(_strippedRegex, '');
    while (stripped.contains('#${numArgs + 1}')) {
      numArgs += 1;
    }
  }
  final bodyLexer = context.getNewLexer(expansion);
  final tokens = <Token>[];
  var tok = bodyLexer.lex();
  while (tok.text != 'EOF') {
    tokens.add(tok);
    tok = bodyLexer.lex();
  }
  return MacroExpansion(tokens: tokens.reversed.toList(), numArgs: numArgs);
}