source: trunk/src/org/modelica/mdt/editor/ModelicaRuleScanner.java @ 6

Last change on this file since 6 was 6, checked in by remar, 19 years ago
  • Added the Modelica Editor created by Peter Bunus.
File size: 2.8 KB
Line 
1/*
2 * Created on Jan 27, 2005
3 *
4 * TODO To change the template for this generated file go to
5 * Window - Preferences - Java - Code Style - Code Templates
6 */
7package org.modelica.mdt.editor;
8
9import org.eclipse.jface.text.TextAttribute;
10import org.eclipse.jface.text.rules.EndOfLineRule;
11import org.eclipse.jface.text.rules.IRule;
12import org.eclipse.jface.text.rules.IToken;
13import org.eclipse.jface.text.rules.RuleBasedScanner;
14import org.eclipse.jface.text.rules.SingleLineRule;
15import org.eclipse.jface.text.rules.MultiLineRule;
16import org.eclipse.jface.text.rules.WordRule;
17import org.eclipse.jface.text.rules.Token;
18import org.eclipse.swt.SWT;
19import org.eclipse.swt.graphics.Color;
20import org.eclipse.swt.graphics.RGB;
21import org.eclipse.swt.widgets.Display;
22import java.lang.String;
23
24/**
25 * @author Peter Bunus
26 *
27 * TODO To change the template for this generated type comment go to
28 * Window - Preferences - Java - Code Style - Code Templates
29 */
30public class ModelicaRuleScanner extends RuleBasedScanner
31                                 implements ModelicaSyntax {
32
33    //comments are shown in green 4 (0,139,0)
34    private static Color COMMENT_COLOR = new Color(Display.getCurrent(), new RGB(0, 139, 0));
35    //Modelica reserved keywords are shown in red4 (139,0,0)
36    private static Color KEYWORD_COLOR = new Color(Display.getCurrent(), new RGB(139, 0, 0));
37    //Modelica types  are shown in blue4 (0,0,139)
38    private static Color TYPES_COLOR = new Color(Display.getCurrent(), new RGB(0, 0, 139));
39
40    public ModelicaRuleScanner() {
41       
42        IToken commentToken = new Token(new TextAttribute(COMMENT_COLOR,null,SWT.BOLD));
43        IToken keywordToken = new Token(new TextAttribute(KEYWORD_COLOR,null,SWT.BOLD));
44        IToken typesToken   = new Token(new TextAttribute(TYPES_COLOR,null,SWT.BOLD));
45           
46        IRule[] rules = new IRule[4];
47           
48               
49        // Add word rule for keywords, types, and constants.
50        WordRule wordRule = new WordRule(new ModelicaKeywordDetector());
51        for (int i = 0; i < reservedwords.length; i++)
52              wordRule.addWord(reservedwords[i], keywordToken);
53        for (int i = 0; i < types.length; i++)
54              wordRule.addWord(types[i], typesToken);
55        for (int i = 0; i < constants.length; i++)
56              wordRule.addWord(constants[i], keywordToken);
57        rules[0]=wordRule;
58       
59//       this will match single line Modelica comments given between quotes "this is a comment"
60        String begging = "this if \\u0022" ;
61        System.out.println(begging);
62        rules[1] = (new SingleLineRule( "\"", "\"", commentToken,'\\'));
63        // this will match sinle line Modelica comments precceded by double backslash
64        rules[2] = (new EndOfLineRule("//", commentToken,'\\'));
65        //Add rules for multi-line comments
66        rules[3] = (new MultiLineRule("/*", "*/", commentToken, (char) 0, true)); 
67       
68        setRules(rules);
69    }
70
71}
Note: See TracBrowser for help on using the repository browser.