Files
bds.mr.dpg/src.lib/dpglib.Messages.pas
T
2026-01-03 18:33:48 +01:00

68 lines
3.2 KiB
ObjectPascal

unit dpglib.Messages;
interface
resourcestring
MSG_W_RULEACCEPTSNOARGS = 'Rule "%s" accepts no arguments.';
MSG_W_RULEHASNORETURN = 'Rule "%s" has no return value.';
MSG_W_RULEHASRETURN = 'Rule "%s" returns a value.';
MSG_W_OPTIONALPATH = 'Optional path found in NextToken.';
MSG_W_SYNTSUPERFLUOUS = 'Syntactic predicate superfluous for single alternative.';
MSG_W_SYNTIGNORED = 'Syntactic predicate ignored for single alternative.';
MSG_E_RULENOTDEFINED = 'Rule "%s" is not defined.';
MSG_E_LEXRULENOTDEFINED = 'Lexer rule "%s" is not defined.';
MSG_E_NOFILTERRULE = 'Filter rule "%s" does not exist in this lexer.';
MSG_W_ILLEGALOPTION = 'Illegal option "%s".';
MSG_W_ILLEGALRULEOPTION = 'Illegal rule option "%s".';
MSG_W_ILLEGALDEMOOPTION = 'Option "%s" is invalid in demo version.';
MSG_W_CANTIMPORT = 'Cannot import "%s".';
// behaviour
MSG_W_TOKENSREDEF = 'Redefinition of literal in tokens {...} "%s".';
MSG_E_RULEREDEF = 'Redefinition of rule "%s".';
// grammar maker
MSG_E_INVSTRINGLITERAL = 'Invalid string literal %s';
MSG_W_LEXPUBLICRETURN = 'Public lexical rules cannot specify return type.';
MSG_E_ABORTGRAMMAR = 'Aborting grammar "%s" do to errors.';
MSG_E_LEXNOTINLEXER = 'Lexical rule "%s" defined outside of lexer.';
MSG_E_LEXCAPITAL = 'Lexical rule names must begin with captal letter. "%s" is not.';
MSG_E_NONINVSUBRULE = 'This subrule cannot be inverted.';
MSG_E_NONINVN2M = '"~" cannot be applied to (...)@ subrule.';
MSG_E_NONINVOOM = '"~" cannot be applied to (...)+ subrule.';
MSG_E_NONINVZOO = '"~" cannot be applied to (...)? subrule.';
MSG_E_NONINVZOM = '"~" cannot be applied to (...)* subrule.';
MSG_E_NONINVSYNTPRED = '"~" cannot be applied to syntactic predicate.';
MSG_E_CHARINPARSER = 'Character literal only valid in lexer.';
MSG_E_CHARRANGEINPARSER = 'Character range only valid in lexer.';
MSG_E_MALFORMEDRANGE = 'Malformed range.';
MSG_E_ILLEGALTOKENSOPT = 'Invalid tokens {...} element option: "%s".';
MSG_E_NOTOKENSTOKEN = 'Cannot find "%s" in tokens {...}.';
MSG_E_ILLEGALELEMOPT = 'Cannot use element option "%s" for this kind of element.';
MSG_E_PARSERRULEINLEXER = 'Parser rule "%s"refenced in lexer.';
MSG_E_ASTINLEXER = 'AST specification "^" not allowed in lexer.';
MSG_E_INVTOKENINLEXER = '~TOKEN is not allowed in lexer.';
MSG_E_INVTOKENREFINLEXER= 'Assignment from token reference only allowed in lexer.';
MSG_E_INVTOKENPARAMLEXER= 'Token reference arguments only allowed in lexer.';
MSG_E_TOKENRANGEINLEXER = 'Token range not allowed in lexer.';
// analyzer
MSG_W_INVNONGREEDY = 'Being nongreedy only makes sense for (...)+ and (...)*';
MSG_W_INVEMPTYALT = 'Empty alternative makes no sense in (...)* or (...)+';
MSG_E_INFRECURSION = 'Infinite recursion to rule "%s" from rule "%s".';
// altblock
MSG_E_INVRULEINSYNPRED = 'Rule "%s" referenced in (...)=>, but not defined.';
MSG_E_PROTECTEDFILTER = 'Filter rule "%s" must be protected.';
MSG_E_CHARLITINNONLEXER = 'Cannot reference character literals in non-lexer grammar: "%s".';
implementation
end.