📄 fjveditortest.dfm
字号:
' '#39'Discard Changes'#39', '
' '#39'Return to Editor'#39')})'
' print d.num'
''
''
'if __name__ == '#39'__main__'#39':'
' t = Button(None, {'#39'text'#39': '#39'Test'#39','
' '#39'command'#39': _test,'
' Pack: {}})'
' q = Button(None, {'#39'text'#39': '#39'Quit'#39','
' '#39'command'#39': t.quit,'
' Pack: {}})'
' t.mainloop()'
'')
GutterWidth = 16
RightMarginVisible = False
RightMargin = 40
RightMarginColor = clSilver
Completion.DropDownCount = 8
Completion.Enabled = True
Completion.ItemHeight = 13
Completion.Interval = 800
Completion.ListBoxStyle = lbStandard
Completion.CaretChar = '|'
Completion.CRLF = '/n'
Completion.Separator = '='
TabStops = '3 5'
SelForeColor = clHighlightText
SelBackColor = clHighlight
OnPaintGutter = RAEditorPaintGutter
Align = alClient
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Courier New'
Font.Style = []
ParentColor = False
ParentFont = False
TabStop = True
UseDockManager = False
Highlighter = hlPython
Colors.Comment.Style = [fsItalic]
Colors.Comment.ForeColor = clOlive
Colors.Comment.BackColor = clWindow
Colors.Number.ForeColor = clNavy
Colors.Number.BackColor = clWindow
Colors.Strings.ForeColor = clPurple
Colors.Strings.BackColor = clWindow
Colors.Symbol.ForeColor = clBlue
Colors.Symbol.BackColor = clWindow
Colors.Reserved.Style = [fsBold]
Colors.Reserved.ForeColor = clBlack
Colors.Reserved.BackColor = clWindow
Colors.Identifier.ForeColor = clBlack
Colors.Identifier.BackColor = clWindow
Colors.Preproc.ForeColor = clGreen
Colors.Preproc.BackColor = clWindow
Colors.FunctionCall.ForeColor = clWindowText
Colors.FunctionCall.BackColor = clWindow
Colors.Declaration.ForeColor = clWindowText
Colors.Declaration.BackColor = clWindow
Colors.Statement.Style = [fsBold]
Colors.Statement.ForeColor = clWindowText
Colors.Statement.BackColor = clWindow
Colors.PlainText.ForeColor = clWindowText
Colors.PlainText.BackColor = clWindow
end
end
object TabSheet7: TTabSheet
Caption = 'Java'
object RAHLEditor2: TJvHLEditor
Tag = 2
Left = 0
Top = 0
Width = 533
Height = 318
Cursor = crIBeam
Lines.Strings = (
'/***********************************************************'
'*'
'* RAJ-Library'
'* RAJI'
'* Copyright (C) 2000 JVCL'
'*'
'* description : expression evaluator'
'*'
'* programmer : Andrey Prigunkov'
'* e-mail : black@infa.ru'
'* ncuxxu@pisem.net'
'* www : http://www.infa.ru/black'
'************************************************************/'
''
'package ra.ji;'
''
'import java.io.*;'
''
'public class Expression { '
' '
' private String source;'
' '
' private final static int MAX_EXP_STACK = 100;'
' private int ExpStackPtr;'
' private Variant[] ExpStack = new Variant[MAX_EXP_STACK];'
' '
' protected Variant vResult;'
' protected Parser parser;'
' protected transient Events events;'
' protected Reflector reflector = new Reflector();'
' protected Args args = new Args();'
' '
' public Expression() {'
' parser = new Parser(null);'
' }'
''
' public void setSource(String source) {'
' this.source = source;'
' sourceChanged();'
' }'
''
' /** return result as variant'
' */'
' public Variant getResult() {'
' if (vResult == null) run();'
' return vResult;'
' }'
''
' /** trigger, called then source is changed'
' */'
' public void sourceChanged() {'
' vResult = null;'
' }'
' '
' /** push value to stack'
' */'
' private void pushExp(Variant Value) {'
' ExpStackPtr ++;'
' if (ExpStackPtr > MAX_EXP_STACK)'
' throw new EjiError(EjiError.INTERNAL, -1);'
' ExpStack[ExpStackPtr] = new Variant(Value);'
' }'
''
' /** pop value from stack'
' */'
' private Variant popExp() {'
' if (ExpStackPtr < 0)'
' throw new EjiError(EjiError.INTERNAL, -1);'
' return ExpStack[ExpStackPtr --];'
' }'
''
' /** evaluate subexpression'
' */'
' private Variant exp(int OpTyp) {'
' if (OpTyp != Parser.TT_UNKNOWN)'
' parser.nextToken();'
' Variant result = new Variant();'
' while (true) {'
' switch (parser.type) {'
' case Parser.TT_POINT:'
' parser.nextToken();'
' if (parser.type != Parser.TT_IDENTIFER)'
' throw new EjiError(EjiError.EXPECTED, parser.getPos(' +
'), EjiError.IR_IDENTIFER);'
' if (result.vType != Variant.varObject &&'
' result.vType != Variant.varClass)'
' throw new EjiError(EjiError.OBJECT_REQUIRED, parser.' +
'getPosBeg());'
' case Parser.TT_INTEGER: '
' case Parser.TT_DOUBLE:'
' case Parser.TT_STRING:'
' case Parser.TT_FALSE:'
' case Parser.TT_TRUE: '
' case Parser.TT_NULL:'
' case Parser.TT_IDENTIFER:'
' if (parser.type == Parser.TT_IDENTIFER) {'
' args.clear();'
' args.identifer = parser.token;'
' parser.nextToken();'
' if (parser.type == Parser.TT_ASSIGN) {'
' iSetValue(result);'
' } else {'
' iGetValue(result);'
' }'
' } else {'
' result.setVariant(parser.vToken);'
' parser.nextToken();'
' }'
' switch (parser.type) {'
' case Parser.TT_INTEGER: case Parser.TT_DOUBLE: case ' +
'Parser.TT_STRING: '
' case Parser.TT_FALSE: case Parser.TT_TRUE: case Pars' +
'er.TT_IDENTIFER:'
' throw new EjiError(EjiError.MISSING_OPERATOR, pars' +
'er.getPrevPos());'
' }'
' if (parser.prior(parser.type) < parser.prior(OpTyp)) '
' return result;'
' break;'
' case Parser.TT_NEW:'
' result = new1();'
' // need check to point !;'
' break;'
' case Parser.TT_LB:'
' result = exp(parser.type);'
' if (parser.type != Parser.TT_RB)'
' throw new EjiError(EjiError.EXPECTED, parser.getPos(' +
'), "'#39')'#39'");'
' parser.nextToken();'
' break;'
' case Parser.TT_LS:'
' result = exp(parser.type);'
' if (parser.type != Parser.TT_RS)'
' throw new EjiError(EjiError.EXPECTED, parser.getPos(' +
'), "'#39']'#39'");'
' parser.nextToken();'
' break;'
' case Parser.TT_RB:'
' case Parser.TT_RS:'
' if (result.vType == Variant.varEmpty)'
' throw new EjiError(EjiError.EXPECTED, parser.getPos(' +
'), EjiError.IR_EXPRESSION);'
' else '
' return result;'
' case Parser.TT_PLUS:'
' switch (parser.prevtype) {'
' case Parser.TT_INTEGER: case Parser.TT_DOUBLE: case ' +
'Parser.TT_STRING: '
' case Parser.TT_FALSE: case Parser.TT_TRUE: case Pars' +
'er.TT_IDENTIFER:'
' case Parser.TT_RB: case Parser.TT_RS: '
' if (parser.PRIOR_PLUS > parser.prior(OpTyp))'
' result = Variant.plus(popExp(), exp(parser.type)' +
');'
' else '
' return result;'
' break;'
' default:'
' result = Variant.unarplus(exp(Parser.TT_NOT /*high' +
'est priority*/));'
' }'
' break;'
' case Parser.TT_MINUS:'
' switch (parser.prevtype) {'
' case Parser.TT_INTEGER: case Parser.TT_DOUBLE: case ' +
'Parser.TT_STRING: '
' case Parser.TT_FALSE: case Parser.TT_TRUE: case Pars' +
'er.TT_IDENTIFER:'
' case Parser.TT_RB: case Parser.TT_RS: '
' if (parser.PRIOR_MINUS > parser.prior(OpTyp))'
' result = Variant.minus(popExp(), exp(parser.type' +
'));'
' else '
' return result;'
' break;'
' default:'
' result = Variant.unarminus(exp(Parser.TT_NOT /*hig' +
'hest priority*/));'
' }'
' break;'
' case Parser.TT_MUL:'
' if (parser.PRIOR_MUL > parser.prior(OpTyp))'
' result = Variant.mul(popExp(), exp(parser.type));'
' else '
' return result;'
' break;'
' case Parser.TT_DIV:'
' if (parser.PRIOR_DIV > parser.prior(OpTyp))'
' result = Variant.div(popExp(), exp(parser.type));'
' else '
' return result;'
' break;'
' case Parser.TT_MOD:'
' if (parser.PRIOR_MOD > parser.prior(OpTyp))'
' result = Variant.mod(popExp(), exp(parser.type));'
' else '
' return result;'
' break;'
' case Parser.TT_AND:'
' if (parser.PRIOR_AND > parser.prior(OpTyp))'
' result = Variant.and(popExp(), exp(parser.type));'
' else '
' return result;'
' break;'
' case Parser.TT_OR:'
' if (parser.PRIOR_OR > parser.prior(OpTyp))'
' result = Variant.or(popExp(), exp(parser.type));'
' else '
' return result;'
' break;'
' case Parser.TT_NOT:'
' if (parser.PRIOR_NOT > parser.prior(OpTyp))'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -