Changeset 5289


Ignore:
Timestamp:
12/30/03 19:54:10 (18 years ago)
Author:
piso
Message:

ASM_FORMAT_LABEL

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/j/AsmFormatter.java

    r5277 r5289  
    33 *
    44 * Copyright (C) 2003 Peter Graves
    5  * $Id: AsmFormatter.java,v 1.1 2003-12-29 19:23:42 piso Exp $
     5 * $Id: AsmFormatter.java,v 1.2 2003-12-30 19:54:10 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    2222package org.armedbear.j;
    2323
     24import gnu.regexp.RE;
     25import gnu.regexp.REMatch;
     26import gnu.regexp.UncheckedRE;
     27
    2428public final class AsmFormatter extends Formatter
    2529{
     30    private static final UncheckedRE labelRE = new UncheckedRE("^[a-zA-z0-9_]+:");
     31
    2632    private static final int ASM_FORMAT_TEXT    = 0;
    2733    private static final int ASM_FORMAT_COMMENT = 1;
     34    private static final int ASM_FORMAT_LABEL   = 2;
    2835
    2936    public AsmFormatter(Buffer buffer)
     
    3744        final String text = getDetabbedText(line);
    3845        if (text.length() > 0) {
    39             int index = text.indexOf(';');
     46            int start = 0;
     47            int index = 0;
     48            REMatch match = labelRE.getMatch(text);
     49            if (match != null) {
     50                index = match.getEndIndex();
     51                addSegment(text, 0, index, ASM_FORMAT_LABEL);
     52                start = index;
     53            }
     54            index = text.indexOf(';', start);
    4055            if (index >= 0) {
    41                 addSegment(text, 0, index, ASM_FORMAT_TEXT);
     56                addSegment(text, start, index, ASM_FORMAT_TEXT);
    4257                addSegment(text, index, ASM_FORMAT_COMMENT);
    4358            } else
    44                 addSegment(text, ASM_FORMAT_TEXT);
     59                addSegment(text, start, ASM_FORMAT_TEXT);
    4560        } else
    4661            addSegment(text, ASM_FORMAT_TEXT);
     
    5469            formatTable.addEntryFromPrefs(ASM_FORMAT_TEXT, "text");
    5570            formatTable.addEntryFromPrefs(ASM_FORMAT_COMMENT, "comment");
     71            formatTable.addEntryFromPrefs(ASM_FORMAT_LABEL, "function");
    5672        }
    5773        return formatTable;
Note: See TracChangeset for help on using the changeset viewer.